将 table 更新为 laravel

update table with laravel

我无法更新我的 table。也许你可以看到问题出在哪里。 编辑工作正常。它为这些领域带来了价值。如果我擦除 {{ method_field('PUT') }} 它会正常保存值,但我需要更新

这是我的更新控制器

public function update(Request $request, Radar $radar)
{
    Radar::update([
        'date' => $request->input('date'),
        'number' => $request->input('number'),
        'distance' => $request->input('distance'),
        'time' => $request->input('time'),            
        ]);

     return redirect('/radars');
}

我的观点是这样的:

<form action="{{ url('/radars')}}" method="post" > 
{{ method_field('PUT') }}
{{ csrf_field() }}

路线:

Route::put('radars/{radar}', 'RadarsController@update');

错误:

MethodNotAllowedHttpException
No message

感谢您的帮助。

看了一下,我觉得应该是这样的:

<form action="{{ url('/radars/' . $radar->id )}}" method="post" > 

如果你看,你发帖到 /radars 但你的路线是 radars/{driver}

您需要指定ID:

{{ url('/radars/') . $radar->id }}

此外,您需要使用对象而不仅仅是模型 class。类似于:

public function update(Request $request, Radar $radar)
{
    $radar->update($request->all());

    return redirect('/radars');
}

Illuminate\Support\Facades\Request

Radar::update(Request::all());

您需要添加 where 语句来告知要更新和不更新的记录

Radar::where('id',$id)->update([
        'date' => $request->input('date'),
        'number' => $request->input('number'),
        'distance' => $request->input('distance'),
        'time' => $request->input('time'),            
        ]);

return 重定向('/雷达');

如果您正在使用资源路由,那么在您的表单中,您需要将操作更改为:

url('/radars')

route('radars.update', $radar)    

并保留以下内容:

{{ method_field('PUT') }}