未定义路由[dashboard.update]。而它是在routes(routs/web.php)文件中定义的
这是我的laravel routes文件代码,所有其他路由工作正常,但“更新”路由出现错误,“路由[dashboard.update]未定义” 这是路线代码未定义路由[dashboard.update]。而它是在routes(routs/web.php)文件中定义的,php,laravel,routes,Php,Laravel,Routes,这是我的laravel routes文件代码,所有其他路由工作正常,但“更新”路由出现错误,“路由[dashboard.update]未定义” 这是路线代码 Route::group(['middleware' => 'auth', 'prefix' => 'dashboard'],function (){ // get routes Route::get('/', 'HomeController@index')->name('dashboard.index'); Route
Route::group(['middleware' => 'auth', 'prefix' => 'dashboard'],function (){
// get routes
Route::get('/', 'HomeController@index')->name('dashboard.index');
Route::get('add', 'HomeController@addNotice')->name('dashboard.add');
Route::get('{id}/edit', 'HomeController@editNotice')->name('dashboard.edit');
Route::get('{id}', 'HomeController@showNotice')->name('dashboard.show');
// post routes
Route::post('add', 'HomeController@storeNotice')->name('dashboard.store');
Route::post('{id}','HomeController@updateNotice')->name('dashboard.update'); //error here
Route::post('{id}', 'HomeController@deleteNotice ')->name('dashboard.delete');
});
以下是HomeController返回的视图代码
<form action="{{ route('dashboard.update',['noticeId' => $noticeId->id]) }}" method="POST" style="padding-left: 10px; padding-right: 10px;">
{{ csrf_field() }}
<div class="row">
<div class="form-group">
<input type="text" class="form-control" name="noticeTitle" placeholder="Give Title to Notice" value="{{ $noticeId->title }}">
</div>
</div>
<div class="row">
<div class="form-group">
<textarea name="noticeBody" cols="30" rows="8" class="form-control" placeholder="Add Notice Details Here" style="resize: none">{{ $noticeId->body }}</textarea>
</div>
</div>
<div class="row">
<div class="form-group">
<input type="submit" name="editNotice" value="Save Changes" class="btn btn-info btn-block btn-sm">
<input type="hidden" name="_method" value="PUT">
</div>
</div>
</form>
{{csrf_field()}}
{{$noticeId->body}
将路线类型更改为PUT
或PATCH
Route::patch('{id}','HomeController@updateNotice')->name('dashboard.update');
这是你的表格
{!! method_field('PATCH') !!}
这里的错误是因为删除路由正在覆盖更新路由,因为它们的类型和路径相同。通常,对于删除路由,应使用“删除”方法
Route::post('{id}','HomeController@updateNotice')->name('dashboard.update');
到
您不能使用表单进行修补/放置
method\u field函数生成一个HTML隐藏输入字段,其中包含表单HTTP谓词的伪造值。
,因此这将与Route::patch
冲突。这只是一个解决方法,不会执行修补程序request@hassan这就是拉威尔的形式和路线的工作原理。谢谢你的否决票。谢谢@FPJ,这真的很有帮助,我用post方法更新和删除,而他们有“put”和“delete”方法。
Route::put('{id}','HomeController@updateNotice')->name('dashboard.update');