我正在編輯我的應用程式路由文件,以使它們盡可能整潔。 所以我在我的“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']); });
儘管這工作正常,但我發現該行是多餘的:
Route::resource('alquileres',AlquilerController::class)->parameters(['alquileres' => 'alquiler']);
,因為我重複文字“AlquilerController::class”,兩者都在參數中'Route::controller',然後是'Route::resource'的第二個參數。
有什麼辦法可以避免這種情況嗎?我嘗試在“group”回調主體的開頭執行一些“error_log”,只是為了看看我得到了什麼,但我找不到解決方案。
非常感謝!
P粉0225014952024-04-05 00:55:16
如何在路由組之前使用控制器類別的值宣告一個變量,然後在路由組類別中使用該變數以避免重複
$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']); });