我在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() }}
但它给了我一个错误:请看截图:
答案 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
数组中添加要在视图中使用的功能。
谢谢!