1. 主页
  2. 文档
  3. 百搜企亿速推系统
  4. 系统开发文档
  5. 基础控制器

基础控制器

大多数情况下,我们建议给你的控制器继承一个基础控制器。

默认安装后,系统提供了一个app\BaseController基础控制器类,你可以对该基础控制器进行修改。

基础控制器的位置可以随意放置,只需要注意更改命名空间即可。

该基础控制器仅仅提供了控制器验证功能,并注入了think\Appthink\Request对象,因此你可以直接在控制器中使用apprequest属性调用think\Appthink\Request对象实例,下面是一个例子:

namespace app\controller;

use app\BaseController;

class Index extends BaseController
{
    public function index()
    {
        $action = $this->request->action();
        $path = $this->app->getBasePath();
    }
}

控制器验证

基础控制器提供了数据验证功能,使用如下:

namespace app\controller;

use app\BaseController;
use think\exception\ValidateException;

class Index extends BaseController
{
    public function index()
    {
        try {
            $this->validate( [
                'name'  => 'thinkphp',
                'email' => 'thinkphp@qq.com',
            ],  'app\index\validate\User');
        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            dump($e->getError());
        }
    }
}

该示例使用了验证器功能,具体可以参考验证章节的验证器部分,这里暂时不做展开。

如果需要批量验证,可以改为:

namespace app\controller;

use app\BaseController;
use think\exception\ValidateException;

class Index extends BaseController
{
    // 开启批量验证
    protected $batchValidate = true;

    public function index()
    {
        try {
            $this->validate( [
                'name'  => 'thinkphp',
                'email' => 'thinkphp@qq.com',
            ],  'app\index\validate\User');
        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            dump($e->getError());
        }
    }
}

我们要如何帮助您?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注