监控系统实践第14天:5天上手Laravel8.5之控制器篇(3/5)

Posted 家铭didphp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控系统实践第14天:5天上手Laravel8.5之控制器篇(3/5)相关的知识,希望对你有一定的参考价值。

前言

前天介绍路由,昨天介绍中间件,今天来介绍一下控制器

控制器可以说是跟路由密切关联的,虽然用途有好几种,但是大部分人还是用它来填充URI的返回内容。

路由控制器,这两者可以说是整个Laravel框架的重点,虽然不一定用到它们,但是最好一定要会。


是否存在疑问,为什么不一定会用到路由控制器

因为当你只需要编写并使用Laravel自定义命令时,可以完全不需要它们,不理会它们。


Laravel基础功能:控制器(Controllers)

简介

Laravel的官方文档对它自己的控制器的介绍是:

为了替代在路由文件中以闭包形式定义的所有的请求处理逻辑,你可能想要使用控制类来组织这些行为。控制器能将相关的请求处理逻辑组成一个单独的类。控制器被存放在 app/Http/Controllers 目录。

这句话简单说来,就是用来填充URI的返回内容的意思。

还记得昨天路由篇中的闭包中定义内容吗?官方文档对控制器的解释,可以理解为闭包中定义内容的升级版,即代替并丰富路由闭包中的内容。

如果不太记得路由,可以回顾这篇:监控系统实践第12天:5天上手Laravel8.5之路由篇(1/5)


如何运用?

控制器本身就是一个php类,抛开PHP自身调用类的方法不谈,将控制器绑定到路由上进行访问,是控制器最常用的使用方法。


实际运用

放下理论概念,我们用几个实例来讲解控制器Laravel中的实际运用方法。


1. 创建控制器

控制器可以通过命令手写的方式创建,推荐使用命令创建控制器,相对手工创建的方式,这样更容易降低错误率。

所有的控制器文件,均默认在文件夹app/Http/Controllers/下。

随意一点,我现在创建一个名为Art控制器,在框架的根目录执行命令:

# php artisan make:controller ArtController

成功返回

Controller created successfully.

在这里插入图片描述
使用创建命令创建好控制器后,控制器/app/Http/Controllers/下,文件名为/app/Http/Controllers/ArtController.php,文件不会包含任何方法,需要自行编写,内容如下

<?php
namespace App\\Http\\Controllers;
use Illuminate\\Http\\Request;

class ArtController extends Controller
{
    //
}

2. 访问控制器

控制器在创建之后,不能直接访问,必须绑定路由

假设编写一个方法show(),返回文本。
在这里插入图片描述
代码文本为:

<?php
namespace App\\Http\\Controllers;
use Illuminate\\Http\\Request;

class ArtController extends Controller
{
    public function show($id=1) {
      return 'show:' . $id;
    }
}

找到路由文件/routes/web.php,将方法show()进行路由绑定,使控制器可以访问:Route::get('show', [\\App\\Http\\Controllers\\ArtController::class, 'show']);
在这里插入图片描述
绑定后,即可访问:
在这里插入图片描述

最后的说明

今天的内容很短是吗?短就对了,够用了,而且近期找过一些朋友问过内容长度问题,还是有一些朋友觉得,内容短点好,容易吸收,太长了,收藏起来,时间久了忘记看。

以上的阐述只对有基础的朋友有作用,如果对以上的知识点有质疑或者不懂的可以在下方留言。

以上是关于监控系统实践第14天:5天上手Laravel8.5之控制器篇(3/5)的主要内容,如果未能解决你的问题,请参考以下文章

监控系统实践第15天:5天上手Laravel8.5之HTTP请求篇(4/5)

监控系统实践第15天:5天上手Laravel8.5之HTTP请求篇(4/5)

监控系统实践第13天:5天上手Laravel8.5之中间件篇(2/5)

监控系统实践第10天:用宝塔部署Laravel8.5框架的站点

监控系统实践第9天:使用Composer下载Laravel8.5

监控系统实践第11天:配置Laravel8.5与开关网站方法