未定义路由[dashboard.update]。而它是在routes(routs/web.php)文件中定义的

未定义路由[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

这是我的laravel routes文件代码,所有其他路由工作正常,但“更新”路由出现错误,“路由[dashboard.update]未定义” 这是路线代码

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');