控制器使用
1、控制器文件写在哪里?
其位置位于app/Http/Controllers
2、控制器文件如何命名?
依照已经存在的四个范例控制器文件名可以得知其命名方式为:
大驼峰的控制器名 + Controller.php
例如,如果需要创建一个商品goods控制器,则命名为:GoodsController.php
3、结构代码如何书写?
注意:其控制器基础结构代码,不需要自己去手动编写,可以通过artisan命令行来自动生成。
因此需要记住对应的命令:
#php artisan make:controller 控制器名(大驼峰)Controller关键词
例如:使用artisan命令创建TestController.php文件。先确定命令:
#php artisan make:controller TestController
4、控制器路由(项目以该方式为主)
即,如何使用路由规则调用控制器下的方法,而不再走回调函数。
路由设置格式基本相同,只是将匿名函数换成‘控制器类名@方法名’
定义格式如下:
Route::请求方法(路由表达式,控制器@方法’)
编写路由规则:
Route::get('home/test/test','Home\TestController@test');
设定路由:/home/test/test1 /p/c/a
5、控制器是否可以分目录管理?【支持】
支持的初步判断原因就是在初始化项目之后,其Controllers目录下就存在Auth目录,而这个目录就是用于分目录管理的。
例如:需要创建前台分组,在前台平台中创建IndexController.php文件;同时建立后台的分组,再创建后台的IndexController.php。
①先建立相关的区分目录
②创建控制器文件(使用artisan命令创建)
在创建的时候需要在命令指定控制器所存放的目录。
创建好的控制器其命名空间等问题,artisan已经解决了。
③编写前后台Index方法的测试代码
④编写对应的路由
Route::请求类型(路由表达式,控制器@方法)
⑤测试访问
结论:通过测试得出,在laravel中控制器是可以分目录管理的。
6、接收用户输入
接收用户输入的类:Illuminate\Support\Facades\Input
Facades:“门面”的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。在这个状态下可以不实例化类但是可以调用类中的方法。说白了就是静态方法。
Input::get(‘参数的名字’, ‘如果参数没有被传递使用该默认值’)
Input::all(): 获取所有的用户的输入
Input::get(’’): 获取单个的用户的输入
Input::only([ ]): 获取指定几个用户的输入
Input::except([ ]): 获取指定几个用户的输入以外的所有的参数
Input::has(‘name’):判断某个输入的参数是否存在
上述方法即既可以获取get中的信息,也可以获取post中信息。
在laravel中如果需要使用facades的话,但是又不想写那么长的引入操作:
Use Illuminate\Support\Facades\Input
则可以在config/app.php中定义长串的别名(在aliases数组中定义别名):
在laravel中友好输出函数:dd()
作用:dump+die,后续的代码不会执行。
提示:在laravel中不仅仅是Input门面可以获取用户的输入,Request门面也可以获取用户输入的,其语法和Input一样,也存在get、all、only等方法。