簡體   English   中英

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.

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