thinkphp5多级控制器是什么?怎么使用?
一、总结
1、多级控制器是让控制器的级数变成多级,也就是controller目录下可以新建其它目录。
2、使用的话注意目录下的控制的的命名空间(加上目录名)(namespace appindexcontrollerone;
)和访问方式(文件名.控制器名)(http://serverName/index.php/index/one.blog/index
)(不开自动定位控制器的情况)
二、多级控制器
新版支持任意层次级别的控制器,并且支持路由,例如:
namespace appindexcontrollerone;
use thinkController;
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
如果要在路由定义中使用多级控制器,可以使用:
hinkRoute::get('blog/add','index/one.Blog/add');
三、自动定位控制器
如果你使用了多级控制器的话,可以设置controller_auto_search
参数开启自动定位控制器,便于URL访问,例如首先在配置文件中添加:
'controller_auto_search' => true,
然后定义控制器如下:
namespace appindexcontrollerone;
use thinkController;
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 appindexcontrollerone;
4、在控制器controller目录下建立名为one的目录,one目录中的控制器的命名空间是怎么样的?
解答:在日常控制器后面加上one。namespace appindexcontrollerone;
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 appindexcontrollerone;
10、url访问中的地址是正斜杠还是反斜杠?
解答:正斜杆。http://serverName/index.php/index/one/Blog