问题标题是我能想到的最明确的,但为了清楚起见,这里有一个用例/示例:
假设我定义以下路线来显示一篇文章:
Route::get('article/{slug}/{id}', 'ArticleController@show');
...
class ArticleController extends BaseController {
public function show($id)
{
return View::make('article')->with('article', Article::find($id));
}
}
这行不通,因为show
会误认为$id
参数与$slug
范围。有没有办法只通过$id
参数到show
method?
我不知道您是否仍在寻找解决方案,但由于我遇到了同样的问题并且我不喜欢这些解决方案,所以我这样做了:
在你的ArticleController
你超载了callAction($method, $parameters)
方法,这是 Laravel 控制器类中的一个方法,所以它看起来像这样:
public function callAction($method, $parameters)
{
unset($parameters['id']);
unset($parameters['slug']);
return parent::callAction($method, $parameters);
}
之后你可以轻松地做到这一点:
public function show($id)
{
return View::make('article')->with('article', Article::find($id));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)