#php #laravel
#php #laravel
Вопрос:
У меня есть это:
Route::get('/admin/funcionarios', [AppHttpControllersAuthController::class, 'funcionarios'])->name('funcionarios');
и это:
<?php
namespace AppHttpControllers;
use AppModelsFuncionarios;
class FuncionarioController extends Controller {
public function destroy($id) {
$funcionario = Funcionarios::find($id);
$funcionario->delete();
return redirect()->route('admin.funcionarios');
}
}
Проблема в том, что я получаю эту ошибку: маршрут [admin.funcionarios] не определен. (Symfony ComponentRouting ExceptionRouteNotFoundException)
Есть идеи, как решить?
Комментарии:
1. является ли этот маршрут в группе, которая добавляет
admin.
имя? в противном случае все было бы такfuncionarios
, как вы определили2. Это страница внутри администратора. admin / funcionarios.
3. можете ли вы показать свою группу маршрутов, которая добавляет этот префикс имени маршрута ‘admin.’?
4.
Route::get('/admin', [AppHttpControllersAuthController::class, 'dashboard'])->name('admin');
5. о, это работает, спасибо!
Ответ №1:
Вы можете назвать свой маршрут так, как вам хотелось бы, поэтому вместо funcionarios
вы могли бы назвать его admin.funcionarios
, если хотите:
Route::get(...)->name('admin.funcionarios');
Вы также можете использовать группу маршрутов, чтобы каскадировать это admin.
имя для маршрутов внутри нее, если хотите:
Route::name('admin.')->group(function () {
Route::get(...)->name('funcionarios');
});
Теперь это имя маршрута для этого маршрута будет иметь admin.funcionarios
«каскадную» конфигурацию групп маршрутов.
Документы Laravel 8.x — Маршрутизация — Именованные маршруты
Документы Laravel 8.x — Маршрутизация — Группы маршрутов — Префиксы имен маршрутов
Ответ №2:
Попробуйте это:
Route::get('/admin/funcionarios',['as' => 'admin.funcionarios', AppHttpControllersAuthController::class, 'funcionarios']);
Ответ №3:
Если вы хотите вернуть redirect()->route(‘admin.funcionarios’);
Попробуйте изменить :
Route::get('/admin/funcionarios', [AppHttpControllersAuthController::class, 'funcionarios'])->name('funcionarios');
Для
Route::get('/admin/funcionarios', [AppHttpControllersAuthController::class, 'funcionarios'])->name('admin.funcionarios');
Ответ №4:
или вы можете сделать это так:
public function destroy($id) {
$funcionario = Funcionarios::find($id);
$funcionario->delete();
return redirect()->route('funcionarios');
}
если это часть маршрута с именем, вы должны записать его в скобках.