有沒有一種方法可以將參數傳遞到不帶通配符的路由。
例如訪問查詢字符串數據,我們需要通配符添加到路由將參數傳遞給函數
Route::post('reg/{param}','[email protected]');
但我不想使用通配符或查詢字符串。我想將數據傳遞給函數作爲參數傳遞
有沒有一種方法可以將參數傳遞到不帶通配符的路由。
例如訪問查詢字符串數據,我們需要通配符添加到路由將參數傳遞給函數
Route::post('reg/{param}','[email protected]');
但我不想使用通配符或查詢字符串。我想將數據傳遞給函數作爲參數傳遞
如果我正確理解你的問題:在您的控制器所有你所要做的就是寫你func
方法如下:
public function func($param) {}
Laravel會自動把什麼是在{param}
至$param
。所以如果你發佈到你的服務器http://server/reg/foo
,那麼$param
會得到值「foo」。它不在變量的順序中,而是變量的名稱。因此,如果您命名變量{fooX}
它將被傳遞給名爲$fooX
的控制器方法。
你可以把多個變量,像這樣:
Route::post('reg/{paramX}/{paramY}','[email protected]');
,並定義方法
public function func($paramX, $paramY) {}
正如我明確提到的,我不想使用通配符技術。 – user1994
我不知道你叫他們通配符。該手冊稱其爲路由參數https://laravel.com/docs/5.5/routing#route-parameters。在這種情況下,您唯一的選擇就是將您的輸入放入請求正文中 - 以x-www-form-urlencoded格式或json格式。然後從'Request'參數中獲取傳遞的值 –
不,那是Laravel路由器是如何工作的。但是你仍然可以從請求中訪問它們。就像您可能在「過去的日子」中完成的那樣,從全局變量$_GET
或$_POST
。
只要定義您的路線不帶通配符,像這樣:
Route::post('reg','[email protected]');
和函數使用$request->query('param_name');
內使用POST路線 – aaron0207
這是一個錯字BTW它後,我已經清楚地提到我不不想使用通配符來訪問函數中的數據我想將數據作爲參數傳遞給路由函數 – user1994