Laravel框架控制器的使用

一、控制器使用(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的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

猜你喜欢

转载自blog.csdn.net/weixin_44103733/article/details/113574899