【问题标题】:Create a Dynamic URL and Redirect to it in Laravel在 Laravel 中创建一个动态 URL 并重定向到它
【发布时间】: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/aboutquestion/somethinganswer/anoher 等等这样的 url 将满足该路由规则,我不能继续这样做。
  • 如果这是您的问题,那么this answer 可能对您有所帮助。
  • @FaKeller 您首先发表了评论,这是正确的答案。但itachi首先给出了答案。我不能接受你的评论作为答案。我应该在这里做什么?我可以接受 itachis 的回答吗?
  • 是的,没问题,继续;-)

标签: php laravel laravel-4 laravel-routing


【解决方案1】:

路线:

    Route::get('action/{slug}', 'HomeController@actionredeemvoucher')->name('home.actionredeemvoucher');

控制器中的功能:

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

【讨论】:

    【解决方案2】:

    它比你想象的要简单。

    Route::get('{category}/{title}',['uses' => 'FooController@bar']);
    

    这应该是您路线列表中定义的最后一条路线。任何其他路线都应该比这条路线更高。

    这将匹配www.domain.com/music/easy-chords-in-guitar

    休息路线随心所欲。

    例如

    Route::get('/',['uses' => 'FooController@home']);
    Route::get('about',['uses' => 'FooController@about']);
    Route::get('contact',['uses' => 'FooController@contact']);
    
    Route::get('{category}/{title}',['uses' => 'FooController@bar']);
    

    【讨论】:

    • 呵呵。明白了你的想法。但是@FaKeller 首先通过他的评论将我重定向到正确的方向!让我从他那里得到反馈,然后接受你的回答。现在为这个答案+1 :-)
    • 谢谢。根据 Fakeller 的建议接受您的回答。
    猜你喜欢
    • 2017-05-27
    • 2016-09-26
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多