我必须开发一个wine 店预订系统.

我使用post方法在数据库中插入新数据,但要编辑并更新数据,我必须使用put方法.但它给出了一个错误"my function..1传入,2预期"中的参数太少.

I am aware I have to cache the routes at every change!!

这是我的控制器:

public function store(Request $request) 
{
    $guest = Guest::create
    ([
        'titel' => $request->input('title'),
        'voornaam' => $request->input('fname'),
        'achternaam' => $request->input('sname'),
        'adres' => $request->input('address'),
        'postcode' => $request->input('zipcode'),
        'stad' =>  $request->input('city'),
        'provincie' => $request->input('provincie'), 
        'email' => $request->input('email')    
    ]);

    return redirect('./clients.html');
}



public function edit($id) 
{
    $guest = Guest::find($id);
    return view('edit')->with('guest', $guest);
}



public function update(Request $request, $id)
{
    $guest = Guest::where('id', $id)
    ->update([
        'titel' => $request->input('title'),
        'voornaam' => $request->input('fname'),
        'achternaam' => $request->input('sname'),
        'adres' => $request->input('address'),
        'postcode' => $request->input('zipcode'),
        'stad' =>  $request->input('city'),
        'provincie' => $request->input('provincie'), 
        'email' => $request->input('email')
    ]);
}

以下是我的路由:

Route::get('/', [PagesController::class, 'home']);

Route::get('/home.html', [PagesController::class, 'home']);

Route::get('/clients.html', [GuestsController::class, 'saveGuests']);

Route::post('/clients.html', [GuestsController::class, 'store']);

Route::put('/clients.html', [GuestsController::class, 'update']);

Route::get('/reservations.html', [PagesController::class, 'reservations']);

Route::get('/clients_new.html', [GuestsController::class, 'newclients']);

Route::get('/clients/{id}/edit.html', [GuestsController::class, 'edit']);

Route::get('/reservations_new.html', [PagesController::class, 'newReservations']);

我更改的文件是(起初使用post方法,但插入了put方法):

 <form action="/clients.html" method="POST" class="w-3/12 m-auto flex flex-col justify-evenly items-center text-xl">
        @csrf
        @method('PUT')
        <div class="medium-6 columns py-4 text-3xl w-full flex flex-row items-center justify-between">
          <label class="font-semibold">Titel</label>
          <select name="title" class="w-22 border-solid border-2 border-grey-200 rounded-lg bg-gray-100 p-2" value="{{ $guest->titel }}">
            <option value="Mr." selected="selected">Mr.</option>
            <option value="Ms.">Mw.</option>
            <option value="Mrs.">Juf.</option>
            <option value="Dr.">Dr.</option>
          </select>
        </div>
        <div class="medium-6 columns m-auto py-4 text-3xl w-full flex flex-row items-center justify-between">
          <label class="font-semibold">Voornaam</label>
          <input name="fname" type="text" class="border-solid border-2 border-grey-200 rounded-lg bg-gray-100 p-2 " value="{{ $guest->voornaam }}">
        </div>
        <div class="medium-6 columns m-auto py-4 text-3xl w-full flex flex-row items-center justify-between">
          <label class="font-semibold">Achternaam</label>
          <input name="sname" type="text" class="border-solid border-2 border-grey-200 rounded-lg bg-gray-100 p-2" value="{{ $guest->achternaam }}">
        </div>

推荐答案

Route::put('/clients/{id}', [GuestsController::class, 'update']);
Route::get('/clients/{id}/edit', [GuestsController::class, 'edit']);

控制器功能:

    public function edit($id) 
{
    $guest = Guest::find($id);
    return view('edit',['guest'=> $guest]);
}

    public function update(Request $request, $id)
{
    $guest = Guest::where('id', $id)
    ->update([
        'titel' => $request->input('title'),
        'voornaam' => $request->input('fname'),
        'achternaam' => $request->input('sname'),
        'adres' => $request->input('address'),
        'postcode' => $request->input('zipcode'),
        'stad' =>  $request->input('city'),
        'provincie' => $request->input('provincie'), 
        'email' => $request->input('email')
    ]);
}

形式如下:

<form action="{{url("clients",$guest->id)}}" method="POST" class="w-3/12 m-auto flex flex-col justify-evenly items-center text-xl">

此外,我鼓励您判断Laravel ValidationRouting的文档

Php相关问答推荐

如何在搜索域名时重定向到登陆页?

使用PHP和WebSockets或SSE实现实时通知

具有重叠捕获组的PHP正则表达式

在WooCommerce中禁用特定日期之前的免费送货

获取要删除的图像的公共ID

PHP空数组定义与开始或结束逗号

将SVG包含在另一个php生成的SVG中

莫德克斯.当我try 使用pThumb为手机压缩图像时,没有任何react

如何解决 Laravel 外键错误?

批量更新 WooCommerce 中所有产品的特定自定义字段

计算添加到购物车的点击次数并将其显示在 WooCommerce 管理产品列表中

Laravel Eloquent:复杂的多对多关系以及缺失关系的默认值

Composer自动加载器重复了子类的类文件路径

yii2 sql迁移覆盖新更改的记录

Shopware 6:无法在新的自定义插件中保存关联字段(媒体)

如何更改或管理Carbon时区,使其不会来回移动时钟

PHP Remedy API 调用以创建附件无效的条目(使用 Postman Works!)

用于多态服务的 Symfony setter 注入

PHP获取根据辞职日期自动续订的合同终止日期

如何在 Laravel 中保存多对多