0

我正在使用 Codeigniter 4 并尝试验证我的表单,但我被困在这里

我的控制器代码:

public function create_project()
{
    $validation = \Config\Services::validation();

    //* Setting validation rules
    $validation->setRules([
        'project_name' => ['label' => 'Project Name', 'rules' => 'required'],
        'description' => ['label' => 'Comments', 'rules' => 'required']
    ]);

    if($validation->getErrors())
    {
        echo "We have errors";
    }
    else
    {
        echo "No errors";
    }
}

当我将项目名称字段和描述字段留空时,此代码将返回 NO 错误,这意味着布尔值是错误的,我只是不明白吗?

4

2 回答 2

0

您的方法的问题是您已经设置了规则但您没有进行验证。为了进行验证,您需要使用 validate() 方法

      $validation = \Config\Services::validation();

      //* Setting validation rules
      $validation->setRules([
          'project_name' => ['label' => 'Project Name', 'rules' => 'required'],
          'description' => ['label' => 'Comments', 'rules' => 'required']
      ]);
      // This is where validation will start
      if (!$this->validate([])) {

        echo "We have errors";
         var_dump($validation->getErrors());

     }else {
        echo 'Passed'
      }

我希望这回答了你的问题。

使用 codeigniter4 编码时的提示

模型有它的验证控制器有它的验证,使用这些比激活验证库并尝试使用它要简单得多。

于 2020-03-22T13:23:08.730 回答
0

https://codeigniter4.github.io/userguide/libraries/validation.html

请参考上面的链接。

$validation->withRequest($this->request)
       ->run();

您尚未运行验证。

于 2020-03-05T12:24:39.980 回答