1.0、创建控制器(controller)
ThinkPHP 5.0 创建一个控制器,非常简单,需要注意的是命名空间必须要与所谓路径相一致。
配置文件 config.php 中,默认指定了应用的命名空间为 "app"。 配置选项为:"app_namespace" => 'app'。
这等于说,应用目录所在的命名空间就是 app。新建一个控制器时,命名空间就是从 app 开始。
<?php
// 不继承 \think\Controller 的简单控制器
namespace app\controller;
class Index {
public function index()
{
echo "我是控制器";
}
public function render()
{
echo "通过调用助手函数 view()来处理模板文件";
return view();
}
public function render_fix()
{
// 通过给函数 view 传送参数,调用指定的路径中模板文件.
// fix.html 会默认是 index/fix.html
// 如果需要指定目录,那需要加上目录,如: test/fix.html.
return view('fix.html');
}
}
?>
注意:
ThinkPHP 5 完整版,应用默认配置就是支持多模块设置 'app_multi_module' => true 。
// 是否支持多模块
'app_multi_module' => true,
模块设置:默认模块为 index, 默认控制器 Index,默认操作 index。配置选项如下:
// 默认模块名
'default_module' => 'index',
// 禁止访问模块
'deny_module_list' => ['common'],
// 默认控制器名
'default_controller' => 'Index',
// 默认操作名
'default_action' => 'index',
// 默认验证器
'default_validate' => '',
// 默认的空控制器名
'empty_controller' => 'Error',
// 操作方法后缀
'action_suffix' => '',
// 自动搜索控制器
'controller_auto_search' => false,
所以,如果你是在模块中,添加新的控制器,声明命名空间时,必须加上模块名称,如:
<?php
namespace app\index\controller;
class Login
{
public function index() {
// ....
}
}
1.1 URL 访问控制器
1.2 创建一个模板文件,并通过视图调用该模板文件。
(如果想要实现控制器方法自动调用,那么就应该在模块下的 view 目录中,新建与控制器名称相同的目录,并在该目录下创建与方法名相同的模板文件)
场景:给 index 模块中的控制器 Index 中的操作 index,添加一个模板文件。
操作:现在 index 模块中,添加一个 view 目录,再创建一个 index 目录,最后新建一个 index.html 模板文件。
创建模板文件有很多种方式,上面的方式可以实现在控制器中,视图不必指定模板文件路径,框架就会自动调用。
1.3 控制中调用模板文件
调用模板文件的方式有两种,一种是继承 \think\Controller,通过 $this->fetch('模板相对路径/模板绝对路径') 调用;另一种是直接使用 view(‘模板相对路径/模板绝对路径’) 函数。
不指定模板路径,都会默认按照 “当前模块/控制器名/操作名.html” 路径进行查找使用。
$this->fetch();(注意:必须继承 \think\Controller)
如果不继承,可以直接使用函数 view() 调用模板
魔术方法:
CLASS , 获取当前类
FUNCTION, 获取当前的方法