Sho*_*iri 5 api model-view-controller resources routes laravel-5
我apiResource在 Route 中使用,它(index, create, show, update, destroy)在exampleController. 当我想使用 show 方法时,路由将不起作用。我该怎么办?我想是因为{fruits}但是我没有怎么解决呢?
Route::apiResource('/fruit/{fruits}/apples', 'exampleController');
Run Code Online (Sandbox Code Playgroud)
我在浏览器中的路线是:
localhost:8000/api/fruits/testFruitSlug/apples/testAppleSlug
Run Code Online (Sandbox Code Playgroud)
apiResource 和 resource in route 的区别: Route::apiResource()只为 index、store、show、update 和 destroy 创建路由,同时Route::resource()还添加了在 API 上下文中没有意义的 create 和 edit 路由。
Emt*_*hid 50
人们已经添加了答案,我只是在视觉上添加路线差异:
Route::resource('users', 'UsersController');
Run Code Online (Sandbox Code Playgroud)
为您提供这些命名路线:
Verb Path Action Route Name
GET /users index users.index
GET /users/create create users.create
POST /users store users.store
GET /users/{user} show users.show
GET /users/{user}/edit edit users.edit
PUT|PATCH /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
Run Code Online (Sandbox Code Playgroud)
Route::apiResource('users', 'UsersController');
Run Code Online (Sandbox Code Playgroud)
为您提供这些命名路线:
Verb Path Action Route Name
GET /users index users.index
POST /users store users.store
GET /users/{user} show users.show
PUT|PATCH /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
Run Code Online (Sandbox Code Playgroud)
要快速生成不包含 create 或 edit 方法的 API 资源控制器,请在执行 make:controller 命令时使用 --api 开关:
php artisan make:controller API/PhotoController --api
Run Code Online (Sandbox Code Playgroud)
尝试使用命令行生成控制器。它会节省你的压力。然后你可以在你的路线中做到这一点
Route::apiResource('photos', 'PhotoController');
Run Code Online (Sandbox Code Playgroud)