最适合入门的Laravel初级教程 (四) 控制器Controller

路由可以分发请求;
路由中还可以引入 html 页面;
我们可以在 route/web.php 中搞定一切了;
但是如果把业务逻辑都写入到路由中;
那路由将庞大的难以维护;
于是控制器就有了很明显的存在价值;
把业务逻辑写在控制器中;
路由只负责转发请求到指定的控制器即可;

ok;那我们开始创建控制器;
啥?你要手动创建文件?
no;既然用上了现代话框架;
必须得用有点逼格的方式干这苦力活了;

好了;下面插播一段 artisan 的内容;
laravel 是一个现代话框架;
它对命令行有着非常好的支持;
artisan 就是 laravel 的命令行接口;
就是根目录下的 artisan 文件;
在这里插入图片描述
我们可以把它理解为命令行级的单入口文件;
跟 index.php 文件的使命一样;
所有的命令行都从它这走;
所以如果想使用命令行;
就需要 cd 到项目的根目录下;
或者手动指定一长串路径;
啥?还有人问什么 cd ?
好吧;还好我有扫盲文章 插播一篇windows下git bash命令行使用的文章
起手式就是 php artisan
在命令行中以 php 开头意思是用 php 来执行某个文件;
php index.php 意思就是使用 php 的命令行模式运行 index.php ;
命令行下是可以不需要文件后缀就能识别的;
所以根目录下的 artisan 文件并没有带上 .php ;

命令行主要有两个方向的应用;
第一是生成文件;
第二是执行任务;
我们马上就要用它生成控制器文件;

php artisan make:controller ArticleController

如果人品正常;
那么会生成一个 app/Http/Controllers/ArticleController.php 文件;
打开是这个样子的;

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ArticleController extends Controller
{
    //
}

不但自动创建了文件;
而且还定义好了命名空间;
继承好了父级控制器;
我们直接写增删改查的方法就可以了;

ok;说干就干吧;
啥?你要手动写方法?
no;既然用上了现代话框架;
必须得用有点逼格的方式干这苦力活了;
来给上面的命令行加个--resource选项;

php artisan make:controller ArticleController --resource

如果直接运行的话是会报错的;
提示 Controller already exists!
因为我们刚已经创建过 ArticleController了;
所以我们需要先把 app/Http/Controllers/ArticleController.php 文件删掉再运行;
如果人品正常;
那么会再次生成一个 app/Http/Controllers/ArticleController.php 文件;
打开是这个样子的;

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

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

怎么样?
惊不惊喜?
开不开心?
有木有被惊die了
不但增删改查的方法都定义好了;
连注释都给写好了;

这其实是按 RESTful 规范生成的格式;
除了 GET POST 它还包含了一大堆请求方式;
PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS;
也就是说 Route:: 后面还可以跟上面这些方法;

Route::put('article', function () {
    return view('article');
});
// ...

RESTful 是本篇文章的一个扩展题;
童鞋们可以搜索了解下;
如果被概念搞的有点懵;
没关系;
留给以后慢慢搞;
现在咱只用 GET POST 足够学习了;

转自:白俊遥博客 https://baijunyao.com

猜你喜欢

转载自blog.csdn.net/ashin8032/article/details/88534131
今日推荐