【问题标题】:Dynamic Route name Laravel 5.2动态路由名称 Laravel 5.2
【发布时间】:2017-01-31 19:15:57
【问题描述】:

我想为我的应用创建动态路由名称。这是我的路线文件

Route::group(['prefix' => '{team}/dashboard', 'middleware' => 'isMember'], function() {

Route::get('/user', array('uses' => 'UserController@index', 'as' => 'user.index'));
Route::get('/user/edit/{id}', array('uses' => 'UserController@edit', 'as' => 'user.edit'));
Route::patch('/user/{id}', array('uses' => 'UserController@update', 'as' => 'user.update'));
Route::delete('/user/{id}', array('uses' => 'UserController@destroy', 'as' => 'user.delete'));

如果我必须像这样定义路线并不简单

'route' => ['user.delete', $team,  $user->id]

public function destroy($team,$id) {
   // do something
    return redirect()->route('user.index', $team);
}

我想生成像“$myteam.user.delete”这样的路线名称或更简单的名称,例如当我定义“user.delete”时它包含我的团队名称。

我该怎么做?有可能吗?

【问题讨论】:

    标签: php laravel routing


    【解决方案1】:

    您可以通过设置 as 来做到这一点。使用资源路由也会很方便。

    $routeName = 'team.';
    
    Route::group(['as' => $routeName], function(){
        Route::resource('user', 'UserController');
    });
    

    现在你可以打电话了

    route('team.user.index');
    

    更多关于资源路线的信息在这里https://laravel.com/docs/5.3/controllers#resource-controllers

    【讨论】:

      【解决方案2】:

      试试这个:

      Route::delete('/user/{team}/{id}', array('uses' => 'UserController@deleteTeamMember', 'as' => 'myteam.user.delete'));
      

      现在将路线称为:

      route('myteam.user.delete', [$team, $id]);
      

      【讨论】:

      • 我认为这就像我之前的代码。注意:myteam 是来自前缀的变量。
      猜你喜欢
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2017-07-03
      相关资源
      最近更新 更多