Laravel 拉威尔的怪异行为';s路由

Laravel 拉威尔的怪异行为';s路由,laravel,controller,routing,Laravel,Controller,Routing,我有两个资源控制器,名为“livre dor”(英文金典)和菜单,用于一个餐厅网站。它们都有基本的CRUD函数,带有“索引”、“存储”、“创建”、“显示”、“更新”、“编辑”和“销毁”。只是,我决定在delete方法中添加一个例外,因为我发现我需要为链接创建一个表单这一事实很烦人 因此,对于这两个控制器,我通过“销毁”操作执行了以下操作: 这适用于“livre dor”,“menus”通常有相同的行,除了Goldenbook::find($id)变成Menu::find($id) 在我的路线中,

我有两个资源控制器,名为“livre dor”(英文金典)和菜单,用于一个餐厅网站。它们都有基本的CRUD函数,带有“索引”、“存储”、“创建”、“显示”、“更新”、“编辑”和“销毁”。只是,我决定在delete方法中添加一个例外,因为我发现我需要为链接创建一个表单这一事实很烦人

因此,对于这两个控制器,我通过“销毁”操作执行了以下操作:

这适用于“livre dor”,“menus”通常有相同的行,除了
Goldenbook::find($id)
变成
Menu::find($id)

在我的路线中,我做了以下工作:

Route::resource('livre-dor', 'GoldenbookController',['except' => ['destroy']]);
Route::get('/destroy/{id}', 'GoldenbookController@destroy')->name('livre-dor.destroy');
Route::resource('menus', 'MenusController', ['except' => ['destroy']]);
Route::get('/destroy/{id}', 'MenusController@destroy')->name('menus.destroy');
在我的两种观点中,我都做了以下几点:

Route::resource('livre-dor', 'GoldenbookController',['except' => ['destroy']]);
Route::get('/destroy/{id}', 'GoldenbookController@destroy')->name('livre-dor.destroy');
Route::resource('menus', 'MenusController', ['except' => ['destroy']]);
Route::get('/destroy/{id}', 'MenusController@destroy')->name('menus.destroy');
index.blade.php

<tbody>
        @foreach($messages as $message)
            <tr>
                <td>
                    {{ $message->nom }}
                </td>
                <td>
                    {{ $message->message }}
                </td>
                <td>
                    <a href="{{route('livre-dor.destroy', $message->id)}}">Supprimer</a>
                </td>
            </tr>
        @endforeach
    </tbody>

@foreach($messages作为$message)
{{$message->nom}
{{$message->message}
@endforeach
因此,这样,我们就不用通过delete访问“livre dor.destroy”,而是通过GET访问,这是一种更简单的方式(不用担心以后会保护它)。当我第一次做这件事的时候,一切都很顺利,直到两天后我重新开始工作

然而,现在,当我进入“livre-dor”索引时,我得到了以下信息:
Route[livre-dor.destroy]未定义。(视图:D:\PHPStormProject\nekoba\resources\views\livre-dor\index.blade.php)
,而“菜单”则平稳显示。当我运行php artisan route:list时,我在任何地方都找不到“livre dor.destroy”:

另外,当我执行php artisan route:cache时,它销毁了menus.destroy route并添加了我的。我找不到这一切背后的逻辑


提前感谢您,询问您是否需要查看其他内容

尝试在资源路由之前编写自定义销毁路由,希望它能起作用。

尝试在资源路由之前编写自定义销毁路由,希望它能起作用

Route::get('/destroy/{id}', 'GoldenbookController@destroy')->name('livre-dor.destroy');
Route::get('/destroy/{id}', 'MenusController@destroy')->name('menus.destroy');
对于两种不同的路由方法,不能有相同的URI。使用不同的名称,例如

Route::get('/livre-dor/destroy/{id}', 'GoldenbookController@destroy')->name('livre-dor.destroy');
Route::get('/menus/destroy/{id}', 'MenusController@destroy')->name('menus.destroy');
对于两种不同的路由方法,不能有相同的URI。使用不同的名称,例如

Route::get('/livre-dor/destroy/{id}', 'GoldenbookController@destroy')->name('livre-dor.destroy');
Route::get('/menus/destroy/{id}', 'MenusController@destroy')->name('menus.destroy');

谢谢你,我仍然不明白为什么和如何我猜,但它现在起作用了谢谢你,我仍然不明白为什么和如何我猜,但它现在起作用了