2017-10-20 85 views
3

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

它`我的更新控制器

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}', '[email protected]'); 

错误:

MethodNotAllowedHttpException 
No message 

谢谢你的帮忙。

+0

你表单动作在末尾没有'driver' – Djave

+0

错误的驱动程序。抱歉。但它并非如此 – Darius

+0

让我知道如果我的回答不正确,我会删除它 – Djave

回答

1

你需要指定ID:

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

另外,您需要使用对象而不仅仅是模型类。喜欢的东西:

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

    return redirect('/radars'); 
} 
+0
+0

@Darius检查呈现的链接,它绝对应该是'/雷达/ 5“而不是'/雷达'。然后用'dd($ radar)'检查'update'方法中的'$ radar'变量。它应该向你展示一个真正的'Radar'对象而不是'null'。 –

0

看着它,我认为它应该像下面的:

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

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

1

照亮的\ Support \外立面\请求

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

显示相同的错误。它看起来像没有编辑窗体和更新 – Darius

+0

@Darius之间的连接,你得到什么错误 – whoami

+0

MethodNotAllowedHttpException没有没有消息 – Darius

0

您需要添加WHERE语句告诉要更新的记录,不

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

回报重定向('/雷达);

0

如果您正在使用资源的路线,然后在你的表格,你需要从改变行为:

url('/radars') 

route('radars.update', $radar)  

,并保持以下几点:

{{ method_field('PUT') }}