laravel apiResource

我们新建一个 控制器

php artisan generate:controller TestController

我们要修改下我们生成的控制器,使用命名空间

test 控制器代码如下

// 命名空间

namespace App\Controllers;

use BaseController;

class TestController extends BaseController {

/**

* Display a listing of the resource.

* GET /test

*

* @return Response

*/

public function index()

{

//

echo 'index';

}

/**

* Show the form for creating a new resource.

* GET /test/create

*

* @return Response

*/

public function create()

{

//

}

/**

* Store a newly created resource in storage.

* POST /test

*

* @return Response

*/

public function store()

{

//

}

/**

* Display the specified resource.

* GET /test/{id}

*

* @param int $id

* @return Response

*/

public function show($id)

{

//

}

/**

* Show the form for editing the specified resource.

* GET /test/{id}/edit

*

* @param int $id

* @return Response

*/

public function edit($id)

{

//

}

/**

* Update the specified resource in storage.

* PUT /test/{id}

*

* @param int $id

* @return Response

*/

public function update($id)

{

//

}

/**

* Remove the specified resource from storage.

* DELETE /test/{id}

*

* @param int $id

* @return Response

*/

public function destroy($id)

{

//

}

}

好了,我们来新建我们的路由,App\Controllers\TestController 就是我们刚刚设置的命名空间哦

Route::resource('test','App\Controllers\TestController');

这个时候,你的控制器就与路由绑定了,

我们访问 localhost/tets 如果输出 index ,那么绑定就成功啦!

好了,绑定好了后,我们来讲讲怎么生成 url,因为使用 URL::route() 都是需要输入 路由的名称的,我们这次绑定整个路由,怎么输入名称呢 ?很简单

就我们之前绑定的 test

URL::route('test.index') // 首页

URL::route('test.edit',array('id'=>1))// 编辑

很简单吧,就是你绑定时候的 名称 连接上你的方法名,

!! 注意,在后台使用,路径要写全,如: admin.test.index

然后,resource 只支持下面几种方法来自动绑定

e423a3ea1659efd96f5e11bfc6cf99c1.png

原文出自:袁超博客

一.使用RESTful风格的路由
动作 URI 行为 路由名称
GET /photos index photos.index
GET /photos/create create photos.create
POST /photos store photos.store
GET /photos/{photo} show photos.show
GET /photos/{photo}/edit edit photos.edit
PUT/PATCH /photos/{photo} update photos.update
DELETE /photos/{photo} destroy photos.destroy
二.举例
下面是RESTful URI的一些例子:

GET /zoos:列出所有动物园
POST /zoos:新建一个动物园
GET /zoos/ID:获取某个指定动物园的信息
PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
DELETE /zoos/ID:删除某个动物园
GET /zoos/ID/animals:列出某个指定动物园的所有动物
DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

三.创建
创建资源路由
php artisan make:controller PhotoController --resource
1
给资源控制器注册一个资源路由
Route::resource('photos', 'PhotoController');
1
声明用于 APIs 的资源路由 (排除显示 HTML 模板的路由(如 create 和 edit ))
Route::apiResource('photo', 'PhotoController');
1
声明资源路由时,你可以指定控制器处理的部分行为,而不是所有默认的行为:
Route::resource('photo', 'PhotoController', ['only' => [
'index', 'show'
]]);


Route::resource('photo', 'PhotoController', ['except' => [
'create', 'store', 'update', 'destroy'
]]);
1
2
3
4
5
6
7
8
四.路由缓存
{note} 基于闭包的路由不能被缓存。如果要使用路由缓存,你必须将所有的闭包路由转换成控制器类路由。

如果你的应用只使用了基于控制器的路由,那么你应该充分利用 Laravel 的路由缓存。使用路由缓存将极大地减少注册所有应用路由所需的时间。某些情况下,路由注册的速度甚至可以快一百倍。要生成路由缓存,只需执行 Artisan 命令

route:cache:
1
php artisan route:cache
1
运行这个命令之后,每一次请求的时候都将会加载缓存的路由文件。如果你添加了新的路由,你需要生成一个新的路由缓存。因此,你应该只在生产环境运行命令

route:cache
1
你可以使用route:clear命令清除路由缓存:

php artisan route:clear
————————————————
版权声明:本文为CSDN博主「DarkAngel1228」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/DarkAngel1228/article/details/81316665

posted @ 2023-04-23 11:02  星云惊蛰  阅读(251)  评论(0)    收藏  举报