【问题标题】:Laravel route controller action with specific param具有特定参数的 Laravel 路由控制器操作
【发布时间】:2014-08-24 14:40:31
【问题描述】:

我正在尝试使用特定参数创建到控制器操作的路由。 所以这就是我到目前为止得到的:

Route::get('faq', array("as"=>"faq","uses"=>"SiteController@showPage"));

我想要的是类似的东西

Route::get('faq', array("as"=>"faq","uses"=>"SiteController@showPage","params"=>"faq"));

对应的控制器动作是这样的

public function showPage($type) {
        $page = Page::where("type", "=", $type)->first();

        return View::make("pages.page")
            ->with("title", $page->title)
            ->with("page", $page);
    } 

页面保存在数据库中,所以我尝试只使用一个函数并使用不同的参数调用它。

有什么想法吗?我不想那样解决它

Route::get('page/{type}', array("as"=>"faq","uses"=>"SiteController@showPage"));

因为否则 url 看起来像 /page/agb。

提前致谢。

【问题讨论】:

  • 我不确定我是否理解。您希望您的网址最终看起来如何?
  • 我希望 url 看起来像 /agb
  • 你试过Route::get('{page}', array('as'=>'page','uses'=>SiteController@showPage'));吗?

标签: php laravel routing


【解决方案1】:

我想你要的是这个:

Route::get("/{type}", array("as" => "showPage", "uses" => "SiteController@showPage"));

...只需确保在您不希望 SiteController@showPage 处理的其他更具体的路由之后定义该路由。

【讨论】:

  • 这正是我想要的。但是,如果我有特定的其他 URL,例如 /login,那么我必须在您的一般规则之前设置此路由,对吗?我只是想知道为什么这是不可能的,或者如何在路由定义中的控制器和方法旁边设置一个参数。
  • 是的,最后设置一般规则。我也一直在寻找一种将参数传递给控制器​​动作的解决方案,但从未找到一个独奏。
猜你喜欢
  • 2014-12-10
  • 2017-01-01
  • 2013-07-14
  • 2020-01-22
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
相关资源
最近更新 更多