使用「資源」; Route::controller(<class>)->group(...) 中的方法
P粉475315142
P粉475315142 2024-04-04 09:09:42
0
1
566

我正在編輯我的應用程式路由文件,以使它們盡可能整潔。 所以我在我的“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粉475315142
P粉475315142

全部回覆(1)
P粉022501495

如何在路由組之前使用控制器類別的值宣告一個變量,然後在路由組類別中使用該變數以避免重複

$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']);
});
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板