Laravel 之 控制器(Controller)

一、控制器所在位置

/app/Http/Controllers

二、创建控制器

可以直接使用 Laravel 内置的命令生成很多代码,例如控制器;根目录下的artisan 就是 laravel 的命令行接口;

//使用命令创建控制器
php artisan make:controller VensController

运行结果会生成 app/Http/Controllers/VensController.php 文件

//命令加上 --resource 会自动生成一些方法;
php artisan make:controller ArticleController --resource

如果有报错 提示:Controller already exists! 查看创建的控制器是否存在!下面是生成后的文件内容

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ArticleController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        echo "123122312";exit;
    }

    /**
     * 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)
    {
        //
    }
}

上面注释、增‘、删、改、查的方法都定义好了;其实这些是按 RESTful 规范生成的格式;除了 GET POST 它还包含了一大堆请求方式;如 PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS

 三、路由配置注意

Laravel 8路由配置方式:

use App\Http\Controllers\UserController;

Route::get('/users', [UserController::class, 'index']); 

Laravel 6/7路由配置方式:

Route::get('/user', 'UserController@index');

请注意Laravel 8中必须要先引用使用到的控制器,或者在定义路由时加上控制器的命名空间,如果仍然想使用Laravel 6/7版本的路由配置方式,那么取消RouteServiceProvider.php中对$namespace的注释即可。

// protected $namespace = 'App\\Http\\Controllers';//取消对这句代码的注释。

 

posted @ 2021-07-27 09:51  星蛤他叔  阅读(664)  评论(0)    收藏  举报