【发布时间】:2015-05-05 01:05:28
【问题描述】:
所以基本上这就是我所需要的。我有一个这样的路由器定义。
Route::get('view/{postId}', 'PostController@view');
如果我们请求的 url 是www.domain.com/view/4,上面的路由器定义将被触发。但我想要的是我想像www.domain.com/[category-of-post]/[titile-of-post] 一样出现这个网址(例如:www.domain.com/music/easy-chords-in-guitar)。
在PostController 中,我将使用传递的 id 获取帖子,因此可以生成我需要的 url。问题就从这里开始。如您所见,我需要重定向到一个动态 url,每个帖子看起来都不同。 我想重定向到这个动态 url,但是这些 url 没有在 routes.php 中定义。
这在 Laravel 中可行吗?
简而言之,我需要的是,在调用Redirect::to('someurl')之前,我想在运行时用我动态生成的url值和相应的控制器操作来更新Illuminate\Routing\RouteCollection::$route数组。
如果您需要进一步说明,我一定会这样做。请给我你的建议。
【问题讨论】:
-
为什么不添加路由:
Route::get('view/{category}/{title}', 'PostController@viewByTitle');并相应地处理新案例? -
@FaKeller :我不想在我的路线中使用
view术语。我只想要{category}/{title},但它的网址太宽泛了。表示page/about、question/something、answer/anoher等等这样的 url 将满足该路由规则,我不能继续这样做。 -
如果这是您的问题,那么this answer 可能对您有所帮助。
-
@FaKeller 您首先发表了评论,这是正确的答案。但itachi首先给出了答案。我不能接受你的评论作为答案。我应该在这里做什么?我可以接受 itachis 的回答吗?
-
是的,没问题,继续;-)
标签: php laravel laravel-4 laravel-routing