控制器的使用

1.控制文件写在哪里?

控制器主要的作用主要负责接收用户输入请求,调度模型处理数据最后利用视图展示数据
其位置位于app/Http/Controllers
在这里插入图片描述
Controller.php文件是框架的基类控制器。

2.控制器文件如何命名

文件的命名方式:大驼峰+Controller.php
友情提示:在写的时候不要带“+”。
例如:

在这里插入图片描述

3.结构代码如何书写

注意:其控制器基础结构代码,不需要自己去手动编写,可以通过artisan命令行来自动生成。

因此需要记住对应的命令:
php artisan make:controller 控制器名(大驼峰) Controller

不要写“.php”。

例如:使用artisan命令创建TestController.php文件。先确定命令:
php artisanmake:controller TestController
在这里插入图片描述
其中已经写好的结构代码:
在这里插入图片描述
后续如果需要更多的控制器只需要重复的执行上述的artisan命令即可。

注意:控制器可以分目录管理。
例如:要创建Admin/TestController,则指令应该写成:
在这里插入图片描述
分目录管理的控制器会自动由框架帮助我们考虑好命名空间的声明以及元素的引入问题。

在这里插入图片描述

4.控制器路由

即,如何使用路由规则调用控制器下的方法,而不再走回调函数。

路由设置格式基本相同,只是将匿名函数换成‘控制器类名@方法名’

定义格式如下:
Route::请求方法(‘路由表达式’,’控制器@方法’);

例如:
在Test控制器中创建test1方法,其中输出phpinfo信息
编写路由规则:
设定路由: /test1
在这里插入图片描述
不存在方法test1会报错:
在这里插入图片描述
编写test1方法:
在这里插入图片描述
效果如下:
在这里插入图片描述
案例2
调用Admin/TestController里面的test1方法,路由使用test0,展示phpinfo信息
在这里插入图片描述
此处的分隔符只能是 ‘\’

否则会报以下错误:
在这里插入图片描述

5.接收用户输入

接收用户输入

接收用户输入的类:Illuminate\Support\Facades\Input (Input门面)

Facades:“门面”的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。在这个状态下可以不实例化类但是可以调用类中的方法。说白了就是静态方法的调用。

Input::get(‘参数的名字’, ‘如果参数没有被传递使用该默认值’) //类似php里三元运算符
Input::all(): 获取所有的用户的输入,返回数组
Input::get(‘参数的名字’): 获取单个的用户的输入,获取不到返回null
Input::only([ ‘id’,’age’]): 获取指定几个用户的输入,返回数组
Input::except([ ‘id’,’age’]): 获取指定几个用户的输入以外的所有的参数,返回数组
Input::has(‘name’):判断某个输入的参数是否存在,返回bool

上述方法既可以获取get中的信息,也可以获取post中信息。

在laravel中如果需要使用facades的话,但是又不想写那么长的引入操作:
Use Illuminate\Support\Facades\Input

则可以在config/app.php中定义长串的别名(在aliases数组中定义别名):
在这里插入图片描述
定义好之后,数组的key就是类的别名,在控制器中可以直接use别名。
在这里插入图片描述

发布了31 篇原创文章 · 获赞 1 · 访问量 324

猜你喜欢

转载自blog.csdn.net/qq_45844654/article/details/105056536