#laravel #laravel-8
Вопрос:
Я хочу использовать другое (множественное число) название модели для названий маршрутов, потому что мой URL-адрес написан на другом языке.
Я могу добиться этого с помощью Restful Именования маршрутов ресурсов
Route::resource('/foo', BarController::class)->parameters([
'foo' => 'bar',
])->names([
'index' => 'bar.index',
'create' => 'bar.create',
'store' => 'bar.store',
'show' => 'bar.show',
'edit' => 'bar.edit',
'update' => 'bar.update',
'destroy' => 'bar.destroy',
]);
Но.. Мне пришлось бы делать это для каждого маршрута ресурсов:
Route::resource('/usuarios', UserController::class)->parameters([
'usuarios' => 'user',
])->names([
'index' => 'user.index',
'create' => 'user.create',
'store' => 'user.store',
'show' => 'user.show',
'edit' => 'user.edit',
'update' => 'user.update',
'destroy' => 'user.destroy',
]);
Как я мог сделать это СУХИМ?
Ответ №1:
Вы можете извлечь эту часть в функцию.
function routeNames($model)
{
return array_map(
fn ($n) => "{$model}.{$n}",
['index', 'create', 'store', 'show', 'edit', 'update', 'destroy']
);
}
Route::resource('/usuarios', UserController::class)->parameters([
'usuarios' => 'user',
])->names(routeNames('user'));