Php 在Laravel中创建一个动态URL并重定向到它

Php 在Laravel中创建一个动态URL并重定向到它,php,laravel,laravel-4,laravel-routing,Php,Laravel,Laravel 4,Laravel Routing,所以基本上这就是我需要的。我有这样一个路由器定义 Route::get('view/{postId}', 'PostController@view'); 如果我们请求的url是www.domain.com/view/4,则会触发上述路由器定义。但我想要的是,我想把这个url显示为www.domain.com/[category of post]/[titile of post](例如:www.domain.com/music/easy chord in guitart) 在PostContro

所以基本上这就是我需要的。我有这样一个路由器定义

Route::get('view/{postId}', 'PostController@view');
如果我们请求的url是
www.domain.com/view/4
,则会触发上述路由器定义。但我想要的是,我想把这个url显示为
www.domain.com/[category of post]/[titile of post]
(例如:
www.domain.com/music/easy chord in guitart

PostController
中,我将使用传递的id获取帖子,从而可以生成我需要的url。问题从这里开始。正如你所看到的,我需要重定向到一个动态url,每个帖子的外观都会有所不同我想重定向到此动态URL,但这些URL没有在
routes.php
中定义

这在拉维尔可能吗

简而言之,我需要的是,在调用
Redirect::to('someurl')之前,我想在运行时用动态生成的url值和相应的控制器操作更新
illighted\Routing\RouteCollection::$route
数组。


如果你需要进一步的澄清,我一定会做的。请给我你的建议。

这比你想象的要简单

Route::get('{category}/{title}',['uses' => 'FooController@bar']);
这应该是路线列表中定义的最后一条路线。任何其他路线都应高于此路线。

这将匹配
www.domain.com/music/easy吉他和弦

rest管线可根据需要进行定义

e、 g

路线:

    Route::get('action/{slug}', 'HomeController@actionredeemvoucher')->name('home.actionredeemvoucher');
控制器中的功能:

    public function actionredeemvoucher($slug)
    {    
       print_r($slug);  
    }    

为什么不添加路由:
route::get('view/{category}/{title}','PostController@viewByTitle');并相应地处理新的案例?@FaKeller:我不想在我的路线中使用
视图
术语。我只想要
{category}/{title}
,但它的url太宽了。意思是
page/about
question/something
answer/another
等等。URL将满足该路由规则,我不能继续。如果这是您的问题,那么可能对您有帮助。@FaKeller您首先发表了评论,这是正确的答案。但itachi首先给出了答案。我不能接受你的评论作为回答。我在这里该怎么办?我能接受Itachi的回答吗?是的,没问题,请继续;-)不明飞行物。明白你的意思了。但是@FaKeller首先通过他的评论把我引向了正确的方向!让我从他那里得到反馈,然后接受你的回答。对于这个答案,现在+1:-)谢谢。根据Fakeller的建议接受你的答案。
    public function actionredeemvoucher($slug)
    {    
       print_r($slug);  
    }