簡體   English   中英

Laravel路由:如何將參數傳遞給控制器​​(而不是通過URL)?

[英]Laravel routing: how to pass parameter to controller (not via URL)?

我有兩條路線: A/{param}/CB/{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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM