2017-01-01 86 views
5

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

说我有以下途径:

Route::get('/teams/choose', '[email protected]')->name('teams.choose.index'); 

Route::post('/teams/choose', '[email protected]')->name('teams.choose'); 

Route::get('/teams/{team}/manage', '[email protected]')->name('teams.team.manage.index'); 

对于get路线,我会nornally把意见匹配路径名的目录结构。例如。 resources/views/teams/team/manage/index.blade.php。不过,我觉得这太冗长了。

我觉得这将是混乱的全方位(对自己和其他开发人员),如果我是使用视图目录结构像这样,而不是最后一个例子:resources/views/team/manage/index.blade.php - 不使用的team复数,所以当我有其他意见,像这样(使用原始示例约定):resources/views/teams/choose.index他们不具有视觉上的意向关系。即他们有一个不同的'根'目录 - teams vs team

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

回答

7

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

我同意。


Laravel docs

Laravel分配资源的路线到控制器时使用的典型REST风格的 “CRUD” 的做法。每个动词(即GET,POST,PUT,DELETE)得到一个指定URI,一个动作(技术上,控制器法)和路由名称(有时,/path/to/blade/view)。

所以,从你的片段:

// return view(teams.index) 
Route::get('/teams', '[email protected]'); 

// return view(teams.create) 
Route::get('/teams/create', '[email protected]'); 

// redirect('/home'); 
Route::post('/teams', '[email protected]'); 

// return view('teams.profile') 
Route::get('/teams/profile', '[email protected]')->name('profile'); 

我用这个resource table提醒我什么对做,什么 - 不这样做所有的时间。

也许,检查一些awesome Laravel codebases可能会有所帮助。另外,关于其他团队如何做事的观点总是无价的。

我发现这是非常有帮助的:


更新

,关键是要坚持标准CRUD操作即指数,s如何创建,存储,编辑,更新和删除。意见将落到他们的位置。

退房Adam Wathan's talk at Laracon EU他演示了什么,什么都可以CRUDDY有一点想象力。

+0

非常感谢! – AshMenhennett