【发布时间】:2014-09-07 12:00:51
【问题描述】:
问题标题是我能想到的最明确的,但为了清楚起见,这里有一个用例/示例:
假设我定义了以下路径来显示一篇文章:
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 方法?
【问题讨论】:
-
你能不能把你的路线改成
'article/{id}'? -
是的,但是我会失去用户输入的额外好处,例如,
/article/some-title/12345,它比/article/12345更容易记住(例如,查看 StackOverflow 的 URL) . -
那为什么不把你的 show 函数改成
public function show($slug, $id)呢?如果没有传入,如何通过控制器中的 slug 获取您的文章?您的选择在这里非常有限,您要么想要 slug,要么不想要。 -
请注意,我的问题是'是否有可能......'。我知道有一些解决方法。
标签: php laravel laravel-routing