CodeIgniter Twig - 验证错误

时间:2018-04-22 03:39:29

标签: php codeigniter twig

我在CodeIgniter中遇到Twig问题。

我试图在CodeIgniter中集成Twig,所以我会有干净的模板。

CodeIgniter Simple and Secure Twig

这真的很好,这是我第一次使用模板引擎。

但我遇到了一个问题。如果我提交表单,我的表单验证消息将不会显示。

  public function user_register()
  {
    $this->form_validation->set_rules('username', 'Username', 'trim|required');
    $this->form_validation->set_rules('password', 'Password', 'trim|required');
    $this->form_validation->set_rules('email', 'Email', 'trim|required');
    $this->form_validation->set_rules('firstname', 'Firstname', 'trim|required');
    $this->form_validation->set_rules('lastname', 'Lastname', 'trim|required');

    if ($this->form_validation->run() === FALSE) {
      $data = [
        'title' => 'Register',
      ];

      $this->twig->display('user_register', $data);
    }

  }

如果我这样做:

<?php echo validation_errors(); ?>

它不会输出任何东西。我的观察是,现在我已经使用Twig作为我的观点,我不能使用php标签。假设这是正确的吗?

如果是,我如何使用Twig在CodeIgniter中输出验证错误?

我将非常感谢您发布的任何建议和链接。希望你能引导我或引导我去哪里看看。

三江源。

修改

我尝试过使用{{ validation_errors() }}

但它给了我一个错误:请看截图:

Error message {{ validation_errors() }}

2 个答案:

答案 0 :(得分:2)

你可以使用一个非常简单的过程,如下面的代码 - 1.在控制器中编写此代码

$data['errors'] = validation_errors();
$this->twig->display('user_register', $data);

2。 然后在你的视图中写下{{ $errors }}

我测试了它&amp;它没有任何问题。

答案 1 :(得分:0)

我终于找到了答案。在我的问题中包含的包中,我刚刚编辑了文件 application / libraries / Twig.php

  private $functions_safe = [
    'form_open',
    'form_close',
    'form_error',
    'set_value',
    'form_hidden',
    'validation_errors', /** I just add this line and validation errors worked perfectly */
    'form_input',
    'form_password',
  ];

对于任何使用上述软件包的人,希望这会有所帮助。只需在$functions_safe数组中添加要在视图中使用的功能。

谢谢!