【问题标题】:two different controllers with same route name具有相同路由名称的两个不同控制器
【发布时间】:2014-10-07 10:01:44
【问题描述】:

假设我有两个名为 Client\DashboardControllerAdmin\DashboardController 的控制器,routes.php 包含以下内容:

Route::get('admin/', [
    'uses' => 'Admin\DashboardController',
    'as'   => 'dashboard'
]);

Route::get('client/', [
    'uses' => 'Client\DashboardController',
    'as'   => 'dashboard'
]);

两个控制器位于不同的命名空间中,但共享一个视图。在我看来,我想做以下事情:

<a href="{{ route('dashboard') }}">home</a>

根据 url 前缀,它应该映射到正确的控制器,但问题是它总是映射到客户端控制器。

【问题讨论】:

    标签: laravel laravel-4 laravel-routing


    【解决方案1】:

    这就像只是为了它而想要拥有两个具有相同名称的函数并抱怨编译器没有做你想做的事情。

    只需命名您的路线,它会让您的生活(调试和维护)更轻松:

    Route::get('admin/', [
        'uses' => 'Admin\DashboardController',
        'as'   => 'admin.dashboard'
    ]);
    
    Route::get('client/', [
        'uses' => 'Client\DashboardController',
        'as'   => 'client.dashboard'
    ]);
    

    然后:

    <a href="{{ route('admin.dashboard') }}">home</a>
    <a href="{{ route('client.dashboard') }}">home</a>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 2015-03-12
      • 2013-10-09
      • 2017-03-10
      • 1970-01-01
      相关资源
      最近更新 更多