路由和查看命名约定

Ash*_*ett 11 naming-conventions laravel

我正在寻找关于我用于路由名称和视图目录结构的命名约定的一些输入.

说我有以下路线:

Route::get('/teams/choose', 'ChooseTeamController@index')->name('teams.choose.index');

Route::post('/teams/choose', 'ChooseTeamController@choose')->name('teams.choose');

Route::get('/teams/{team}/manage', 'ManageTeamController@index')->name('teams.team.manage.index');
Run Code Online (Sandbox Code Playgroud)

对于get路由,我会将视图放在与路由名称匹配的目录结构中.例如resources/views/teams/team/manage/index.blade.php.但是,我觉得这太冗长了.

我觉得如果我要使用像这样的视图目录结构,而不是最后一个例子,那将是全面(对我自己和其他开发人员)的混淆:resources/views/team/manage/index.blade.php- team没有使用复数,所以当我有其他视图时,如所以(使用原始的例子约定):resources/views/teams/choose.index他们在视觉上没有预期的关系.即他们有A型不同的"根"目录- teamsVS team.

任何意见或建议将不胜感激.

jos*_*ina 18

对于get路由,我通常会将视图放在与路由名称匹配的目录结构中.例如resources/views/teams/team/manage/index.blade.php.但是,我觉得这太冗长了.

我同意.


来自Laravel文档:

在将资源路由分配给控制器时,Laravel使用典型的RESTful"CRUD"方法.每个动词(即GET,POST,PUT,DELETE)获取指定的URI,动作(技术上,控制器方法)和路径名(有时/path/to/blade/view).

所以,从你的片段:

// return view(teams.index)
Route::get('/teams', 'TeamController@index');

// return view(teams.create)
Route::get('/teams/create', 'TeamsController@create');

// redirect('/home');
Route::post('/teams', 'TeamController@store');

// return view('teams.profile')
Route::get('/teams/profile', 'TeamController@profile')->name('profile');
Run Code Online (Sandbox Code Playgroud)

我使用这个资源表来提醒我一直做什么和什么不做.

或许,检查一些非常棒的Laravel代码库可能会有所帮助.另外,关于其他团队如何做事的观点总是无价的.

我发现这些非常有帮助:


更新

关键是要坚持标准的CRUD动作,即索引,显示,创建,存储,编辑,更新和删除.观点将落在他们的位置上.

看看Adam Wathan在Laracon EU上的演讲,他演示了如何用任何想象力来做任何事情.