使用'资源”; Route::controller(<class>)->group(...) 中的方法
P粉475315142
P粉475315142 2024-04-04 09:09:42
0
1
518

我正在编辑我的应用程序路由文件,以使它们尽可能整洁。 所以我在我的“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']);
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!