Maison > Questions et réponses > le corps du texte
J'édite les fichiers de routage de mes applications pour les rendre le plus ordonnés possible. J'ai donc fait ça dans mon "web.php" :
Route::controller(AlquilerController::class)->group(function ($hola) { //Debug lines error_log("This"); error_log(get_class($this)); //Illuminate\Routing\RouteFileRegistrar. error_log("hola"); error_log(get_class($hola)); //Illuminate\Routing\Router. Route::get('alquileres/busqueda', 'busqueda')->name('alquileres.busqueda'); Route::get('alquileres/busqueda_texto', 'busquedaTexto')->name('alquileres.busqueda_texto'); Route::middleware('auth')->get('alquileres/mis_alquileres', 'mis_alquileres')->name('alquileres.mis_alquileres'); Route::post('/alquileres/filter_texto', 'filterTexto')->name('alquileres.filter_texto'); Route::get('/alquileres/filter_texto', 'filterTexto')->name('alquileres.filter_texto_url'); Route::post('/alquileres/filter', 'filter')->name('alquileres.filter'); Route::get('/alquileres/filter', 'filter')->name('alquileres.filter_url'); Route::resource('alquileres',AlquilerController::class)->parameters(['alquileres' => 'alquiler']); });
Bien que cela fonctionne bien, je trouve cette ligne redondante :
Route::resource('alquileres',AlquilerController::class)->parameters(['alquileres' => 'alquiler']);
, parce que je répète le texte "AlquilerController::class", à la fois dans le paramètre 'Route::controller', puis dans le deuxième paramètre de 'Route::resource'.
Y a-t-il un moyen d'éviter cela ? J'ai essayé de faire un "error_log" au début du corps de rappel "group" juste pour voir ce que j'ai obtenu, mais je ne trouve pas de solution.
Merci beaucoup !
P粉0225014952024-04-05 00:55:16
Comment déclarer une variable avec la valeur de la classe du contrôleur avant le groupe de routage, puis utiliser cette variable dans la classe du groupe de routage pour éviter la duplication
$controllerClass = AlquilerController::class; Route::controller($controllerClass)->group(function () use ($controllerClass) { Route::get('alquileres/busqueda', 'busqueda')->name('alquileres.busqueda'); Route::get('alquileres/busqueda_texto', 'busquedaTexto')->name('alquileres.busqueda_texto'); Route::middleware('auth')->get('alquileres/mis_alquileres', 'mis_alquileres')->name('alquileres.mis_alquileres'); Route::post('/alquileres/filter_texto', 'filterTexto')->name('alquileres.filter_texto'); Route::get('/alquileres/filter_texto', 'filterTexto')->name('alquileres.filter_texto_url'); Route::post('/alquileres/filter', 'filter')->name('alquileres.filter'); Route::get('/alquileres/filter', 'filter')->name('alquileres.filter_url'); Route::resource('alquileres', $controllerClass)->parameters(['alquileres' => 'alquiler']); });