我有这个:
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");
哪个不起作用。
答案 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]);
}