PHP-Laravel控制器使用(C)
- 2020 年 3 月 27 日
- 筆記
三、控制器使用©
控制器主要的作用主要负责接收用户输入请求,调度模型处理数据最后利用视图展示数据。
1、控制器文件写在哪里?
其位置位于app/Http/Controllers

其中Auth存放的是框架自带的Auth认证相关的示例控制器文件,controller.php文件是框架的基类控制器。
2、控制器文件如何命名?
命名可以参考Auth文件夹中给定的示例文件:

文件的命名方式:大驼峰+Controller.php
友情提示:在写的时候不要带“+”。
3、结构代码如何书写?【重点】
注意:其控制器基础结构代码,不需要自己去手动编写,可以通过artisan命令行来自动生成。 因此需要记住对应的命令:
#php artisan make:controller 控制器名(大驼峰)Controller
不要写“.php”。 例如:使用artisan命令创建TestController.php文件。先确定命令:
#php artisan make:controller TestController

其中已经写好的结构代码:

后续如果需要更多的控制器只需要重复的执行上述的artisan命令即可。
注意:控制器可以分目录管理。
4、控制器路由(项目以该方式为主)
即,如何使用路由规则调用控制器下的方法,而不再走回调函数。路由设置格式基本相同,只是将匿名函数换成‘控制器类名@方法名’定义格式如下:
Route::请求方法(‘路由表达式’,’控制器@方法');
例如:在Test控制器中创建test1方法,其中输出phpinfo信息

编写路由规则: 设定路由: /test1

效果如下:

5、接收用户输入【重点】
接收用户输入的类:IlluminateSupportFacadesInput Facades:“门面”的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。在这个状态下可以不实例化类但是可以调用类中的方法。说白了就是静态方法的调用。
Input::get(‘参数的名字’, ‘如果参数没有被传递使用该默认值’) //类似php里三元运算符 Input::all(): 获取所有的用户的输入 Input::get('参数的名字'): 获取单个的用户的输入 Input::only([ ‘id’,’age’]): 获取指定几个用户的输入 Input::except([ ‘id’,’age’]): 获取指定几个用户的输入以外的所有的参数 Input::has('name'):判断某个输入的参数是否存在 上述方法既可以获取get中的信息,也可以获取post中信息。
在laravel中如果需要使用facades的话,但是又不想写那么长的引入操作:
Use IlluminateSupportFacadesInput
则可以在config/app.php中定义长串的别名(在aliases数组中定义别名):

案例:在Home /index/test2路由下测试上述的方法

定义路由:
/home/index/test2

编写test2方法测试上述的获取信息的操作: 给test2路由传递一系列的参数(get传值)

在Laravel中友好输出函数:dd(需要打印的内容); dd=dump + die dd函数之后的内容将不会继续执行;

在Laravel中除了Input类可以获取用户的输入,Request也可以获取用户输入。