【问题标题】:Laravel 4: named routes in named groupsLaravel 4:命名组中的命名路由
【发布时间】:2013-07-16 11:42:30
【问题描述】:

有没有办法制作这样的东西?

Route::group(array('as' => 'admin', 'prefix' => 'admin', 'before' => 'admin'), function()
{
    Route::get('/', array('as' => 'home', 'uses' => 'AdminController@index'));
    Route::get('users', array('as' => 'users', 'uses' => 'AdminController@users'));
});

我们的目标是不要在所有名称中都包含“admin”,并为上述示例创建链接,如下所示:

URL::route('admin.home');
URL::route('admin.users');

上面的例子不起作用:

Illegal offset type in unset
laravel/bootstrap/compiled.php:5053

已命名的组在作品中具有未命名的路线。 未命名组中的命名路由也可以工作。 但不是在一起。

【问题讨论】:

    标签: php routes laravel laravel-4


    【解决方案1】:
    Route::group(['prefix' => 'admin', 'before' => 'adminAuth'], function(){
        // If you do not want to repeat 'admin' in all route names, 
        // define the value here
        $r = 'admin';
    
        Route::get('users', ['as' => "{$r}.users", 'uses' => 'AdminController@users']);
        Route::get('/', ['as' => "{$r}.root", 'uses' => 'AdminController@index']);
    });
    

    在您的视图/重定向中,您可以使用URL::action('ControllerName@method),Laravel 将知道重定向/指向的位置...

    【讨论】:

    • 但是您在路由组中使用了“prefix->admin” - 我认为您不需要将前缀重新附加到每个单独的路由?
    • 前缀用于捕获URL,所以你不需要在组内写'admin/users',URL的'users'部分就足够了。它与路由名称无关
    • 嗯-好的-有道理
    • 谢谢。使用 var 可能是一种解决方法。可悲的是,这个名字嵌套不起作用=(
    • 如果可以将“前缀”和其他参数传递到闭包中,那就太好了。这样,就不需要在闭包体内定义前缀。也许我们可以为泰勒填写请求?!
    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2021-05-12
    • 2014-11-07
    • 1970-01-01
    相关资源
    最近更新 更多