【问题标题】:Laravel 4 routingLaravel 4 路由
【发布时间】:2013-01-15 22:10:02
【问题描述】:

我是 Laravel 4 的新手,很难掌握路线。我的网站有一个前端和一个后端。我想在example.com/dashboard/... 下显示后端发生的所有内容。我也想使用足智多谋的控制器。我需要在routes.php 中设置什么才能拥有它,这样我就可以始终引用我的users 控制器,但是这一切都发生在URL 中的dashboard 下?

例子:

我链接到 users/edit/1,但在 URL 中看起来像 example.com/dashboard/users/edit/1。仪表板应该有一个索引页面(所以example.com/dashboard 实际上显示一个页面),但所有其他 URL 都附加到该页面。

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    我认为Larvel 4 Documentation 对此进行了很好的介绍。

    除非我有误解,否则这应该会为您的示例案例提供所需的结果:

    Route::get('dashboard', 'DashboardController@index');
    Route::get('dashboard/users/edit/{id}', 'UsersController@edit');
    etc.
    

    // 编辑

    或者,使用闭包回调,您可以执行以下操作:

    Route::get('dashboard/users/{var1}/{var2?}', function($var1, $var2 = null)
    {
        $controller = new UsersController;
        return $controller->{$var1}($var2);
    });
    

    这不需要您指定每条路线。或者,正如我在下面的 cmets 中提到的,如果它适合您的需要,您可以使用 Resource Controller

    【讨论】:

    • 是的,我知道我可以链接到dashboard/users/...。我想我要问的是,是否可以让 UsersController 使用 /dashboard/users/... 而不是 /users/...,而不必在任何地方显式链接到 /dashboard/users/...
    • 也许将其指定为Resource Controller 对您有用? Route::resource('dashboard/users', 'UsersController');
    • 编辑了我的答案以包含一个我认为可能更接近您正在寻找的替代解决方案。
    猜你喜欢
    • 2013-05-22
    • 2013-05-27
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 2014-12-15
    相关资源
    最近更新 更多