Laravel在URL中传递参数

时间:2017-03-03 10:46:30

标签: php laravel routes

我在网站上有一个webhook,所以当执行某个动作时,我的Laravel应用程序中的一个功能是用PUT方法执行的。 webhook具有以下URL来执行app.myapp.com/sync/documents/gt?salesID=12345

如何在Laravel中收到此参数?

这是我的路线:

Route::put('/sync/vendus/documents/gt', 'SyncController@postVendusGT');

然后在我的方法中我有:

public function postVendusGT($request){
    dd($request->salesID);
}

但我收到以下错误:

Missing argument 1 for App\Http\Controllers\SyncController::postVendusGT()

我这样做了吗?

3 个答案:

答案 0 :(得分:4)

您必须输入提示$request

public function postVendusGT(Request $request)

答案 1 :(得分:3)

您需要注入请求对象,这意味着添加类型。这告诉Laravel第一个参数必须是请求对象而不是url参数。

public function postVendusGT(Request $request) {
    dd($request->salesID);
}

更多信息可在the documentation中找到。

答案 2 :(得分:1)

提供以下几种选择:

public function postVendusGT(){
    dd(\Request::get("salesID"));
}

public function postVendusGT(){
    $request = resolve('request');
    dd($request->salesID);
}

以防在特定情况下无法进行依赖注入。