[英]Laravel routing: how to pass parameter to controller (not via URL)?
我有兩條路線: A/{param}/C
和B/{param}/C
我也有一個帶有方法的控制器:
public function index($param, $param1 = false)
{
//...
}
在A/{param}/C
情況下,我僅傳遞一個參數-URL中指定的一個參數,並且該函數將默認參數用於第二個參數。 如果是第二條路線,我想將true
作為第二個參數傳遞。 由於未在URL中指定,如何將其傳遞給函數?
如果我正確理解了您,而沒有使用$ _POST,那么您將無法傳遞參數而不會出現在URI中(在設置會話變量之外,我不建議這樣做)
另一種選擇是將其作為查詢字符串參數傳遞。 它仍將保留在url中,但不一定會被路由模式捕獲
網址:
A/{param}/C
B/{param}/C?param1=true
-
控制器:
public function index($param)
{
$param1 = Request::query('param1'); // if not present false, if present, {value}
}
-
另外,如果您想要一個友好的URL,則可以在第二個參數之后放置一個問號,以表明該參數可能存在或可能不存在。 這將與以下兩個URL匹配
網址:
A/{param}/C
B/{param}/C/true
路線:
Route::get('B/{param}/C/{param1?}', 'YourController@index');
控制器:
public function index($param, $param1 = false)
{
//
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.