我已经创建了多个控制器和路由,但是它们一次只能工作1个,我必须禁用另一个控制器并更改我的刀片文件的代码,或者为它们使用不同的刀片文件,但是有一种简单的使用方法。
路线是
Route::get('/students/{alphabet}', 'PostController@showByAlphabet');
Route::get('/students/{name}', 'PostController@showByName');
Route::get('/students/{class}', 'PostController@showByClass');
我不想创建其他刀片文件,例如
http://example.com/students/alphabet/a
http://example.com/students/name/nadia
http://example.com/students/class/b_com
但是这样
http://example.com/students/a
http://example.com/students/nadia
http://example.com/students/b_com
有可能吗?
所有控制器显示不同的数据。
1.以字母开头的学生的字母显示清单。
2.名称显示学生的个人资料。
3.班级显示该学科班的学生列表。
答案 0 :(得分:0)
由于路线末尾有通配符,因此第一个始终会触发。因此,请确保您具有控制器功能的单独路径。您仍然可以在控制器中使用相同的刀片文件。
Route::get('/students/alphabet/{alphabet}', 'PostController@showByAlphabet');
Route::get('/students/name/{name}', 'PostController@showByName');
Route::get('/students/class/{class}', 'PostController@showByClass');
如果您的路由具有相同的参数,路由器将无法知道您要发送的字符是字母,名称还是类别。