如何将额外的参数传递给laravel中的控制器

时间:2015-02-25 07:16:56

标签: php laravel

我有这个:

Route::get('/product/{id}', 'PagesController@display');

在我的PagesController中,我有这个:

public function display($id) {
    return View::make("details", ["id" => $id, "premium" => $premium]);
}

如何将变量$premium传递给控制器​​方法而不将其插入网址?简单来说,我不想这样: www.mysite.com/product/false/125 false $premium的值)但是这: www.mysite.com/product/125 。这就是为什么我在控制器方法中只有$id作为参数而不是$premium的原因。我想以其他方式传递该变量$premium

我尝试过像这样的方法:

Route::get('/product/{id}', 'PagesController@display')->where("premium" => "false");

哪个不起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用关闭路线并手动调用操作":

Route::get('/product/{id}', function($id){
    return app('PagesController')->callAction('display', [$id, false]);
});

public function display($id, $premium) {
    return View::make("details", ["id" => $id, "premium" => $premium]);
}