![](/img/trans.png)
[英]Passing specified parameters in route file to the controller in laravel
[英]Laravel passing parameters to controller from route
我正在為Laravel項目創建一個API。 我已經將我的API身份驗證直接包含在route.php文件中。 驗證通過后,我希望能夠將$ api參數傳遞給控制器本身以使用。 正如您將在下面看到的那樣,我在Route:post調用之后附加了-> with(),但這失敗了。 如何將$ api傳遞給我的控件?
提前致謝!
Route::group(array('prefix' => 'api/1.0.0'), function()
{
$api = Api::checkCredentials(Input::get('username'), Input::get('api_key'));
if($api)
{
Route::post('beacons/fetch', 'ApiController@fetchBeacons')->with('api', $api);
}
else
{
return Response::json(array(
'error' => true,
'output' => 'Invalid API credentials'),
200
);
}
});
您可以before
過濾器before
使用,例如:
Route::group(array('prefix' => 'api/1.0.0'), function()
{
Route::post(
'beacons/fetch',
array('before' => 'checkUser', 'uses' => 'ApiController@fetchBeacons')
);
});
聲明將在分派route
之前執行的checkUser
過濾器:
Route::filter('checkUser', function($route, $request) {
$inputs = Input::only(array('username', 'api_key'));
$api = app('Api')->checkCredentials($inputs);
if(!$api) {
return Response::json(array(
'error' => true,
'output' => 'Invalid API credentials'),
200
);
}
else {
Input::merge(array('api' => $api));
}
});
因此,現在,您可以使用以下命令訪問控制器中的api
:
$api = Input::get('api');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.