Laravel框架控制器的使用

371 阅读3分钟

一、控制器使用(C)

控制器主要的作用负责接收用户输入请求,调度模型处理数据最后利用视图展示数据。

1、控制器文件写在哪里?

在这里插入图片描述

其中Auth存放的是框架自带的Auth认证相关的示例控制器文件,controller.php文件是框架的基类控制器,Auth文件夹的存在说明了控制器是可以分目录的(模块)进行管理的。

2、控制器文件如何命令?

命名可以参考Auth文件夹中给定的示例文件:

在这里插入图片描述

文件命名方式:大驼峰+Controller.php。

3、结构代码如何书写?

注意:其控制器结构代码,不需要自己去手动编写,可以通过artisan命令来自动生成。 如下: php artisan make:controller 控制器名

在这里插入图片描述

php artisan make:controller 目录路径/控制器名 (如果你有分目录) 在这里插入图片描述

效果: 在这里插入图片描述

4、控制器路由(项目以该方式为主)

即如何使用路由规则调用控制器下的方法,而不再走回调函数。 路由设置格式基本相同,只是将匿名函数换成"控制器类名@方法名" 定义格式如下: Route::请求方法('路由表达式', '控制器@方法'); 例如:在My控制器中创建my1方法,其中输出phpinfo信息 在这里插入图片描述 在这里插入图片描述 效果:

在这里插入图片描述

如果页面报错:

laravel 报 Target class [MyController] does not exist.

那么在项目里找\app\Providers\RouteServiceProvider.php找到 protected $namespace = 'App\\Http\\Controllers';解除注释就可以了。 没有找到就加上。


使用分目录管理的控制其路由:

在这里插入图片描述

在这里插入图片描述 效果: 在这里插入图片描述

5、接收用户输入【重点】

接收用户输入的类:Illuminate\Support\Facades\Input laravel8以上的版本使用Request,用法类似。 Facades:"门面"的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。在这个状态下可以不实例化类但是可以调用类中的方法。说白了就是静态方法的调用。

Input::get('参数的名字', '如果参数没有被传递使用该默认值') // 类似php里三元运算符 Input::all() // 获取所有的用户的输入 Input::get('参数名字') // 获取单个的用户的输入 Input::only(['id', 'age']) // 获取指定几个用户的输入 Input::except(['id', 'age']) // 获取指定几个用户的输入以外的所有的参数 Input::has('name') // 判断某个输入的参数是否存在 (上述既可以获取get中的信息,也可以获取post中信息)

在Laravel中如果需要使用facades的话,但是又不想写那么长的引入操作: 则可以在config/app.php中定义长串的别名(在aliases数组中定义别名): 在这里插入图片描述 接下来输入如下代码: 在web.php中定义控制器路由: 在这里插入图片描述 在laravel框架中也可以使用dd(需要打印的内容)(dd = dump + die)但是dd函数之后的内容将不会继续执行,dump后续代码还可执行。 我们在TestController下输入如下代码进行测试: 在这里插入图片描述 效果如下: 在这里插入图片描述 更多的规则可以点这里。

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。