laravel资源控制器

控制器入门

具备以上理论知识后,下面我们来创建一个控制器,我们可以通过 Artisan 命令快速创建一个控制器:

php artisan make:controller TaskController

资源控制器
有时候在编写控制器时命名方法名称可能是最困难的,好在 Laravel 为常见的 REST/CRUD 控制器(在 Laravel 中称之为「资源控制器」)提供了一套约定规则,并为此提供了相应的 Artisan 生成器和路由定义方法,从方便我们一次为所有控制器方法定义路由。

首先,我们使用这个 Artisan 生成器来生成一个资源控制器(在之前命名后加上 --resource 选项):

php artisan make:controller PostController --resource

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PostController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

资源控制器方法列表

以上 PostController 控制器的每个方法都有对应的请求方式、路由命名、URL、方法名和业务逻辑约定。

HTTP请求方式 URL 控制器方法 路由命名 业务逻辑描述
GET post index() post.index 展示所有文章
GET post/create create() post.create 发布文章表单页面
POST post store() post.store 获取表单提交数据并保存新文章
GET post/{post} show() post.show 展示单个文章
GET post/{id}/edit edit() post.edit 编辑文章表单页面
PUT post/{id} update() post.update 获取编辑表单输入并更新文章
DELETE post/{id} destroy() post.desc 删除单个文章

绑定资源服务器

通过上面的表格已经了解了 Laravel 中对资源路由的命名约定,Laravel 还为我们提供了一个 Route::resource 方法用于一次注册包含上面列出的所有路由,并且遵循上述所有约定:

Route::resource('post', 'PostController');

转自https://laravelacademy.org/post/9614.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Laravel 学习交流 QQ 群:375462817 本文档前言Laravel 文档写的很好,只是新手看起来会有...
    Leonzai阅读 12,528评论 2 12
  • 必备品文档:DocumentationAPI: API Reference视频:Laracasts速查表:Lara...
    ethanzhang阅读 11,034评论 0 68
  • 必备品文档:DocumentationAPI: API Reference视频:Laracasts速查表:Lara...
    daos阅读 4,829评论 0 4
  • Laravel框架一:原理机制篇 Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特...
    Mr_Z_Heng阅读 9,185评论 0 13
  • 一. 说明 以下内容大部分引用Laravel China社区的文章 - 分享下团队的开发规范 ——《Laravel...
    knghlp508阅读 12,357评论 0 28