thinkphp5多级控制器是什么?怎么使用?

一、总结

1、多级控制器是让控制器的级数变成多级,也就是controller目录下可以新建其它目录。

2、使用的话注意目录下的控制的的命名空间(加上目录名)(namespace app\index\controller\one;)和访问方式(文件名.控制器名)(http://serverName/index.php/index/one.blog/index)(不开自动定位控制器的情况)

二、多级控制器

新版支持任意层次级别的控制器,并且支持路由,例如:

namespace app\index\controller\one;

use think\Controller;

class Blog extends Controller
{
public function index()
{
return $this->fetch();
} public function add()
{
return $this->fetch();
} public function edit($id)
{
return $this->fetch();
}
}

该控制器类的文件位置为:

application/index/controller/one/Blog.php

访问地址可以使用

http://serverName/index.php/index/one.blog/index

如果要在路由定义中使用多级控制器,可以使用:

\think\Route::get('blog/add','index/one.Blog/add');

三、自动定位控制器

如果你使用了多级控制器的话,可以设置controller_auto_search参数开启自动定位控制器,便于URL访问,例如首先在配置文件中添加:

'controller_auto_search' => true,

然后定义控制器如下:

namespace app\index\controller\one;

use think\Controller;

class Blog extends Controller
{
public function index()
{
return $this->fetch();
} public function add()
{
return $this->fetch();
} public function edit($id)
{
return $this->fetch('edit:'.$id);
}
}

我们就可以直接访问下面的URL地址了:

http://serverName/index.php/index/one/Blog

四、测试题-简答题

1、thinkphp里面的多级控制器是什么?

解答:就是thinkphp可以在控制器controller文件下再建文件夹。

application/index/controller/one/Blog.php

2、thinkphp里面的多级控制器有什么用?

解答:让控制器的层次结构更加分明。

3、thinkphp里面的多级控制器如何实现?

解答:a、在控制器controller目录下建立文件夹   b、新文件夹下的命名空间要注意。

namespace app\index\controller\one;

4、在控制器controller目录下建立名为one的目录,one目录中的控制器的命名空间是怎么样的?

解答:在日常控制器后面加上one。namespace app\index\controller\one;

5、在控制器controller目录下建立名为one的目录,one目录中有一个名为blog的控制器,这个控制器如何在地址栏被访问?

解答:目录名.控制器名 的形式。 one.blog。 http://serverName/index.php/index/one.blog/index

6、thinkphp中的自动定位控制器有什么用?

解答:便于多级控制器的访问,让多级控制器可以按照文件目录访问,而不是 目录名.控制器名 的形式访问。http://serverName/index.php/index/one/Blog。

7、thinkphp中的自动定位控制器只有在开启了多级控制器才有用,这句话正确么?

解答:正确,因为自动定位控制器就是为多级控制器来服务的。

8、thinkphp中如何开启自动定位控制器?

解答:在配置文件中将 'controller_auto_search' => true, 前者的值置为true。

9、thinkphp中的命名空间和ues引入的文件名是正斜杠还是反斜杠?

解答:反斜杠。namespace app\index\controller\one;

10、url访问中的地址是正斜杠还是反斜杠?

解答:正斜杆。http://serverName/index.php/index/one/Blog

thinkphp5多级控制器是什么?怎么使用?的更多相关文章

  1. Thinkphp控制器,1.多层控制器2.多级控制器

    1.多层控制器 ThinkPHP的控制器支持多层和多级,多层指的是控制器可以分层,例如除了默认的Controller控制器层(我们可以称之为访问控制器),还可以添加事件控制器(层),例如: ├─Con ...

  2. Thinkphp5.0 控制器向视图view赋值

    Thinkphp5.0 控制器向视图view的赋值 方式一(使用fetch()方法的第二个参数赋值): <?php namespace app\index\controller; use thi ...

  3. thinkphp5空控制器和空操作

    thinkphp5空控制器和空操作 一.总结 1.空控制器和空操作用:空控制器和空操作都是为了防止网站上的用户恶意输入,网站上线的话必须加上, 2.空操作:空操作就是在一般的控制器里面加上一个 _em ...

  4. ThinkPHP开发api时多级控制器的访问方法

    发开api时,经常会用到thinkphp的多级控制器,访问方法如下: 例如:有v1和v2两个版本的接口 v1:版本控制器(类文件位置为:application/api/controller/v1/Us ...

  5. thinkphp5实现多级控制器

    默认情况下目录结构 application ->admin->controller->class.php 当项目比较多的时候,目录下控制器文件较多,考虑按模块增加一层目录 appli ...

  6. Asp.net Mvc 多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 (多级路由) 如:Admin/Test/Index

    http://blog.csdn.net/buhuan123/article/details/26387427 目录(?)[-] 1那么我们再来看我们需要的访问方式如下图 razor视图的地址写成通配 ...

  7. ThinkPHP5跨控制器调用

    1.在application\index\controller\文件夹里新建User.php <?php namespace app\index\controller; class User{ ...

  8. Thinkphp5创建控制器

    今天我们就来创建一个控制器: <?php namespace app\index\controller; use think\Controller; class Test extends Con ...

  9. thinkphp5的控制器调用自身模块和调用其他模块的方法

    以user为例,调用user.php的get_number()方法 一.不管是调用自身模块还是其他模块app\model\User.php写法不变 <?php namespace app\ind ...

随机推荐

  1. Spark MLlib LDA 源代码解析

    1.Spark MLlib LDA源代码解析 http://blog.csdn.net/sunbow0 Spark MLlib LDA 应该算是比較难理解的,当中涉及到大量的概率与统计的相关知识,并且 ...

  2. Android Studio中怎样引用图片资源

    随着不断接触Android Studio,越来越发现和Eclipse有着巨大的差别. 不管是表面的目录结构,还是内在对各种资源的管理. 本篇就来聊聊Android Studio中怎样来显示图片. 以及 ...

  3. curl 使用 ~/.netrc ( Windows 上是 _netrc ) 问题

    curl 使用  --netrc-file <filemame> , -n, --netrc, --netrc-optional 等选项做登录认证时, 默认文件位于 ~/.netrc ( ...

  4. 数据集 —— ground truth 数据集

    1. matlab 自带含 ground truth 数据集 %% 加载停车标志数据到内存: data = load('stopSignsAndCars.mat', 'stopSignsAndCars ...

  5. 移动开发js库Zepto.js使用中的一些注意点

    来自http://chaoskeh.com/blog/some-experience-of-using-zepto.html的参考. 前段时间完成了公司一个产品的 HTML5 触屏版,开发中使用了 Z ...

  6. nuxt按需引入 element-UI、自定义主题色(终极按需引入)

    首先你要知道 nuxt.js怎么引入第三方插件 : 不多BB. 一.按需引入element-UI 第一步:安装 babel-plugin-component: npm install babel-pl ...

  7. Python 极简教程(十二)逻辑控制语句 if else

    计算机软件之所以能够对不同的情况进行不同的处理,就是我们在编码的时候,通过逻辑控制语句,告诉软件在不同的情况下应该做什么处理. 比如我们在登录的时候,那么当你输入正确的账号密码和错误的账号密码,完全是 ...

  8. C#执行sql文件

    C# 执行sql文件 2012-05-11 12:28:57|  分类: App Develop|举报|字号 订阅       /// <summary>         /// 执行sq ...

  9. 利用mysql5.6 的st_distance 实现按照距离远近排序。 (转载)

    http://blog.csdn.net/zhouzhiwengang/article/details/53612481

  10. 作为一个新人,怎样学习嵌入式Linux?(韦东山)

    这篇文章是引用韦老师的部分关于新人怎么学习嵌入式Linux的经验,引用如下: 1.电脑一开机,那些界面是谁显示的?是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它. 类似的, ...