Laravel API URL 参数和路由

我的 api.php 文件中有以下代码:


Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function() {

    // Return user information

    Route::get('/user', function(Request $request) {

        return $request->user();

    });


    // Return  user runs

    Route::get('/runs', function(Request $request) {

        $user = $request->user('api');


        return $user->runs();

    });


    Route::get('/runs/{id}', function(Request $request, $id) {

        $user = $request->user('api');


        return $user->run($id);

    });


    // Return user profiles

    Route::get('/profiles', function(Request $request) {

        $user = $request->user('api');


        return $user->profiles();

    });


});

API调用


我正在使用 PostMan 测试 API:


GET - http://srp.local/api/v1/runs/1

身份验证是使用不记名令牌完成的,这工作正常,但是我遇到了/runs/{id}调用的问题,我想要的只是让调用返回与该 ID 关联的运行(基本上是过滤版本的在/运行调用),但我挣扎着爬了ID防空火炮的参数。


目前,上面的代码可以工作,但是当尝试执行上述调用时,它所做的只是返回/user的输出,并且不返回具有给定 ID 的运行。


我也不确定我是否使用上述方法以最佳方式进行路由,因此将不胜感激任何帮助 - 谢谢。


拉莫斯之舞
浏览 276回答 1
1回答

千万里不及你

模型可以通过使用路由模型绑定来解析,请查看以下示例: Route::get('/runs/{run}', function(Request $request, Run $run) {        $user = $request->user('api');         return $user->run($run);     });更多信息:https : //laravel.com/docs/5.8/routing#implicit-binding在路由中使用控制器优于使用回调。控制器有助于分离代码并允许缓存。查看以下示例:https : //laravel.com/docs/5.8/controllers#defining-controllers
打开App,查看更多内容
随时随地看视频慕课网APP