我有这个:
Route::get('/product/{id}', 'PagesController@display');
在我的PagesController中,我有这个:
public function display($id) {
return View::make("details", ["id" => $id, "premium" => $premium]);
}
如何将变量$premium
传递给控制器方法而不将其插入url?简单地说,我不想要这个: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");
这没用。
您可以使用关闭路线并"手动"调用操作:
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]);
}