控制器主要的作用负责接收用户输入请求,调度模型处理数据最后利用视图展示数据。
1、控制器文件写在哪里?

其中Auth存放的是框架自带的Auth认证相关的示例控制器文件,controller.php文件是框架的基类控制器,Auth文件夹的存在说明了控制器是可以分目录的(模块)进行管理的。
2、控制器文件如何命令?
命名可以参考Auth文件夹中给定的示例文件:

文件命名方式:大驼峰+Controller.php。
3、结构代码如何书写?
注意:其控制器结构代码,不需要自己去手动编写,可以通过artisan命令来自动生成。 如下: php artisan make:controller 控制器名

php artisan make:controller 目录路径/控制器名 (如果你有分目录) 
效果: 
4、控制器路由(项目以该方式为主)
即如何使用路由规则调用控制器下的方法,而不再走回调函数。 
效果:

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