更新路线无效。
我已经定义了以下路线
Route::resource('contact', 'Dashboard\ContactController');
表格行动如下
{!! Form::open(['route' => 'contact.update','role' => 'form', 'class'=>'contact-form','id' => 'contact-form', 'data-submit' => 'noAjax']) !!}
我尝试使用方法作为PUT / PATCH,但它仍然存储路径。
我也试过传递一个带有更新的参数,但它没有工作
{!! Form::open(['route' => ['contact.update', $list->id]]) !!}
答案 0 :(得分:1)
从文档中,您需要添加隐藏的_method字段并为表单使用POST方法
由于HTML表单无法发出PUT,PATCH或DELETE请求,因此您将 需要添加一个隐藏的 _method 字段来欺骗这些HTTP动词。的 @method Blade指令可以为您创建此字段:
<form action="/foo/bar" method="POST">
@method('PUT')
</form>
答案 1 :(得分:0)
使用资源功能时,它会生成如下路径:
+----------+-------------------------+----------+-----------------+
| Method | Route | Action | Name |
+----------+-------------------------+----------+-----------------+
| GET | /contact | index | contact.index |
| GET | /contact/create | create | contact.create |
| POST | /contact | store | contact.store |
| GET | /contact/{contact} | show | contact.show |
| GET | /contact/{contact}/edit | edit | contact.edit |
| PUT | /contact/{contact} | update | contact.update |
| DELETE | /contact/{contact} | destroy | contact.destroy |
+----------+-------------------------+----------+-----------------+
如您所见,contact.update
期待参数。所以你必须将一个数组传递给route
参数,以获得路由的名称和它的参数:
Form::open(['route' => ['contact.update', 'contactId']]);
contactId
将是您尝试更新的联系人的ID。
答案 2 :(得分:0)
您可以尝试以下方法:
Route::resource('contacts', 'Dashboard\ContactController');
代替:
Route::resource('contact', 'Dashboard\ContactController');