专栏首页cwl_JavaPHP-Laravel控制器使用(C)

PHP-Laravel控制器使用(C)

三、控制器使用©

控制器主要的作用主要负责接收用户输入请求,调度模型处理数据最后利用视图展示数据。

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、接收用户输入【重点】

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

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

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

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

Use Illuminate\Support\Facades\Input

则可以在config/app.php中定义长串的别名(在aliases数组中定义别名):

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

定义路由:

/home/index/test2

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP-TP框架中的控制器

    表示默认情况下,控制器无特殊后缀。例如 Index控制器,文件名为Index.php

    cwl_java
  • PHP-ThinkPHP将后台模板与框架做结合

    商品列表 Goods控制器index方法 goods_list.html -> index.html

    cwl_java
  • 速读原著-TCP/IP(SMTP: 简单邮件传送协议)

    电子邮件(e - m a i l)无疑是最流行的应用程序。 [Caceres et al.1991]说明,所有T C P连接中大约一半是用于简单邮件传送协议 S...

    cwl_java
  • LSTM与GRU简单介绍

    和我们人一样,RNN虽然擅长处理序列问题,但它也只能记住重要的短时信息,对于长时间的信息它则很难处理。也就是说,如果一条序列足够长,那它将很难把信息从较早的时间...

    用户7569543
  • PHP合并数组的几种方法比较

    在7.0.20版本中,array_merge_recursive合并相同字符串索引的数组时,合并结果中会有相同的数字索引。

    俗可耐
  • Python-定时器使用

    通过crontab -e命令,添加定时器任务。定期执行python的脚本。如果-e后面是多条命名,可以用分号”;”进行分割。用分号 (;) 所分割的话,那么命令...

    py3study
  • Linux命令(56)——telnet命令

    telnet命令用于登录远程主机,是基于Telnet协议的远程登录程序,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都...

    Dabelv
  • 学界 | 面对 NIPS 上 6:1 的男女比例,李飞飞和 AI4ALL 决定……

    AI 科技评论按:我们都在心中认同女性也应在计算机、人工智能领域大有作为,但只有一部分人决定切实付诸行动。本文是被这些付诸行动的人所影响、激励的女中学生 Ste...

    AI科技评论
  • P4语言编程详解

    在文章《P4:开创数据平面可编程时代》中介绍了P4的架构特性、交换机结构以及P4程序的工作原理,本篇为大家介绍P4语言编码及规范,从编码角度去理解P4程序的工作...

    SDNLAB
  • 【RL-TCPnet网络教程】第31章 Telnet远程登录基础知识

    本章节为大家讲解Telnet (Teletype Network) 的基础知识,方便后面章节的实战操作。

    armfly

扫码关注云+社区

领取腾讯云代金券