我正在创建一个用户可以创建客户
的信息中心每个客户都有:类别,员工,...... 现在我想知道如何构建路线。
例如,如果我创建以下内容:(伪代码)
Route::get('clients/{id}/');
Route::get('clients/{id}/categories');
Route::get('clients/{id}/categories/{category}');
Route::get('clients/{id}/categories/{category}/questions/{question}');
这似乎是很多不必要的参数..
你们是怎么做到的?我真的想在一个单独的页面上拆分类别,将员工分成一个单独的页面。
谢谢。
答案 0 :(得分:1)
在我的所有项目中,我避免在URL中使用大量嵌套实体,所以我分开访问每个实体,这也是@jeffrey_way在Laraasts培训网站Laracasts上推荐的。 所以,我会做以下事情:
Route::get('clients/{id}/');
Route::get('categories/{client_id}');
Route::get('categorie/{category}'); //not that i have removed the plural s from categorie(s)
Route::get('question/{question}');
祝你好运
答案 1 :(得分:1)
老实说,这取决于你的应用程序的大小,我可能会将它们分组,所以仍然保持相同的结构。
Route::group('clients/{id}', function()
{
Route::get('/');
Route::group('categories', function()
{
Route::get('/');
Route::get('{category}');
Route::get('{category}/questions/{question}');
})
})
与您的相同,但如果您扩展类别或客户端,我觉得稍后会进行一些清理。
答案 2 :(得分:0)
在这种情况下,我宁愿在GET
方法中使用所有参数只使用一条路径。所以,我只想添加一个参数:
Route::get('client/create', 'ClientController@store');
因此,所有参数都将由store
的{{1}}方法维护,如下所示:
ClientController
当我需要触发这条路线时,我会做类似下面的事情:
public function store(Request $request){
$category = $request->get('category')
//......
//get other get parameters like this when required
}
如您所知,我们可以使用旧的全球朋友<a href="{{url('client/create').'?category=1&question=2'}}">Create link</a>
变量传递我们的参数。