有一种方法是用我的控制器的方法自动设置路线吗?
示例:我有一个PagesController,它包含“home”或“index”、“about”和“contact”方法。我可以为每一种方法设置路线而不明确地键入它们吗?
有点像
Route::?('PagesController');或
Route::get('/{page}', 'PagesController@{page}');是啊,我是新来的.
发布于 2018-12-01 12:53:40
不,这不可能。假设您使用了标准的RESTful方法,如索引、创建、编辑、存储、更新和销毁,那么是的,您只需编写:
Route::resource('cars', 'CarController');您将为汽车列表创建路线、编辑路线、创建路线等等。
这一点将在资源控制器文档部分中解释。
但请记住,您始终可以创建将“捕获”所有其他urls的路由,例如,您可以创建这样的路由:
Route::get('{page?}', 'PagesController@handle')->where('page', '.+')这条路线应该被定义为所有其他路线中的最后一条。
现在您可以在此控制器中定义handle方法,如下所示:
public function handle($page = 'home')
{
// here you can put any logic you want, for example:
if (method_exists($this, $page)) {
return $this->$page();
}
abort(404);
}现在您可以定义与urls匹配的方法,例如:
public function home()
{
// return some response here
}
public function index()
{
// return some response here
}这样,您应该能够实现您想要的,而不需要手动定义路由文件中的多个路由。
https://stackoverflow.com/questions/53566901
复制相似问题