I have a webhook in a website, so that when a certain action is performed, one of my functions in my Laravel app is executed with the PUT method. The webhook has the following url to execute app.myapp.com/sync/documents/gt?salesID=12345
.
How do I receive this parameter in Laravel?
This is my route:
Route::put('/sync/vendus/documents/gt', 'SyncController@postVendusGT');
And then in my method I have:
public function postVendusGT($request){
dd($request->salesID);
}
But I'm getting the following error:
Missing argument 1 for App\Http\Controllers\SyncController::postVendusGT()
Am I doing this right?
You need to inject the request object, this means adding the type. This tells Laravel the first parameter has to be a request object and not an url parameter.
public function postVendusGT(Request $request) {
dd($request->salesID);
}
More information can be found in the documentation.
You have to type-hint $request
public function postVendusGT(Request $request)
Offering this as a couple of alternatives:
public function postVendusGT(){
dd(\Request::get("salesID"));
}
or
public function postVendusGT(){
$request = resolve('request');
dd($request->salesID);
}
Just in case dependency injection is not possible in a given scenario.