zoukankan      html  css  js  c++  java
  • 资源控制器 RESTful 详细讲解查看laravel8 控制器文档

    资源控制器

    1、Laravel 的资源控制器可以让我们很便捷地构建基于资源的 RESTful 控制器,例如,你可能想要在应用中创建一个控制器,用于处理关于文章存储的 HTTP 请求,使用 Artisan 命令 make:controller,我们可以快速创建这样的控制器:

    php artisan make:controller PostController --resource

    2、接下来,可以通过 resource 方法为该控制器注册一个资源路由:

    Route::resource('posts', AppHttpControllersPostController::class);

    3、这个路由声明包含了处理文章资源对应动作的多个路由,相应地,Artisan 生成的控制器也已经为这些动作设置了对应的处理方法。

    你可以通过传递数组到 resources 方法从而一次注册多个资源控制器:

    Route::resources([
       'photos' => PhotoController::class,
       'posts' => PostController::class,
    ]);

    资源控制器处理的动作

    请求方式URI路径控制器方法路由名称
    GET /posts index posts.index
    GET /posts/create create posts.create
    POST /posts store posts.store
    GET /posts/{post} show posts.show
    GET /posts/{post}/edit edit posts.edit
    PUT/PATCH /posts/{post} update posts.update
    DELETE /posts/{post} destroy posts.destroy

    4、指定资源模型

    如果你使用了路由模型绑定,并且想要在资源控制器的方法中对模型实例进行依赖注入,可以在生成控制器的使用使用 --model 选项:

    php artisan make:controller PostController --resource --model=Post

    可以看到,如果 Post 类不存在的话会询问并自动创建,同时 PostController 类中的方法参数也变成了模型实例

    5、API 资源路由

    声明被 API 消费的资源路由时,你可能需要排除展示 HTML 模板的路由,如 create 和 edit,为了方便起见,Laravel 提供了 apiResource 方法自动排除这两个路由:

    Route::apiResource('posts', PostController::class);

    同样,你可以传递数组到 apiResources 方法以便一次注册多个 API 资源控制器:

    Route::apiResources([
      'photos' => PhotoController::class,
      'posts' => PostController::class,
    ]);

    6、

    要想快速生成不包含 create 或 edit 方法的 API 资源控制器,可以在执行 make:controller 命令时使用 --api 开关:

    php artisan make:controller API/PostController --api
    7、嵌套资源
  • 相关阅读:
    导航栏下拉至一定高度后固定在顶部的特效
    laravel表单中文错误提示本地化
    laravel模板使用
    网站测试用例
    sublime安装ctags用于追踪函数
    ecshop头部添加所在城市
    php 常用的redis操作语法
    mysql where与 having的区别
    mysql 列类型以及属性特点
    不错的博客链接
  • 原文地址:https://www.cnblogs.com/gaogaoxingxing/p/15120102.html
Copyright © 2011-2022 走看看