У меня есть два контроллера ресурсов по имени «livre-dor» (золотая книга на английском языке) и меню для веб-сайта ресторана. Оба они имеют базовую функцию CRUD с «индексом», «магазином», «создавать», «показывать», «обновлять», «редактировать» и «уничтожать». Только, я решил добавить исключение в метод удаления, потому что я нахожу раздражающим тот факт, что мне нужно создать форму только для ссылки.Странное поведение с маршрутизацией Laravel
Таким образом, для обоих контроллеров, я сделал следующее с действием «уничтожить»:
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$message = Goldenbook::find($id);
$message->delete();
session()->flash('message', 'Message supprimé');
return redirect('livre-dor');
}
Это для «Livre-Дор», litteraly «меню» имеет те же строки, освобожденного для Goldenbook::find($id)
это будет Menu::find($id)
.
В моей маршрутизации, я сделал следующее:
Route::resource('livre-dor', 'GoldenbookController',['except' => ['destroy']]);
Route::get('/destroy/{id}', '[email protected]')->name('livre-dor.destroy');
Route::resource('menus', 'MenusController', ['except' => ['destroy']]);
Route::get('/destroy/{id}', '[email protected]')->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>
Так , таким образом, вместо перехода на «livre-dor.destroy» с помощью delete, мы будем проходить через GET, который будет проще (не беспокойтесь, это будет защищено позже). Когда я впервые сделал все это, все работало, пока я не вернулся к работе над ним два дня спустя.
Однако теперь, когда я добираюсь до индекса «livre-dor», я получаю следующее: Route [livre-dor.destroy] not defined. (View: D:\PHPStormProject\nekoba\resources\views\livre-dor\index.blade.php)
, в то время как «меню» отображается гладко. И когда я бегу php artisan route:list
, я не могу найти 'Livre-dor.destroy' в любом месте:
Кроме того, когда я сделал php artisan route:cache
, он уничтожил menus.destroy маршрут и добавил шахту. Я не могу найти логику всего этого.
Спасибо заранее, спросите, если вы хотите увидеть что-то еще
Спасибо, я до сих пор не понимаю, почему это и как там я догадываюсь, но он работает сейчас – Jaeger
Пожалуйста '/ уничтожить/7' - что вы делаете ???? ...... . Поэтому. –