动态路线名称Laravel 5.2

时间:2017-01-31 19:15:57

标签: php laravel routing

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

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"它包括我的团队名称。

我怎么能这样做?有可能吗?

2 个答案:

答案 0 :(得分:2)

您可以将设置为来实现。使用资源路线也很方便。

$routeName = 'team.';

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

现在你可以像

一样打电话
route('team.user.index');

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

答案 1 :(得分:0)

试试这个:

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

现在将路线称为:

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