Php Phalcon框架中的表单元素验证(检查元素是否存在)
我是Phalcon框架的初学者,我必须在Php Phalcon框架中的表单元素验证(检查元素是否存在),php,forms,validation,phalcon,Php,Forms,Validation,Phalcon,我是Phalcon框架的初学者,我必须在.volt页面中验证表单元素 我有一个表单类文件,我在其中编写隐藏文件用于记录编辑,当处于编辑模式时,我将记录的id存储在隐藏文件中 if ($options["edit"] == 1) { // $tax_categories_id = new Hidden("tax_categories_id"); $this->add(new Hidden('tax_categories_id')); //$thi
.volt
页面中验证表单元素
我有一个表单类文件,我在其中编写隐藏文件用于记录编辑,当处于编辑模式时,我将记录的id存储在隐藏文件中
if ($options["edit"] == 1) {
// $tax_categories_id = new Hidden("tax_categories_id");
$this->add(new Hidden('tax_categories_id'));
//$this->add($tax_categories_id);
}
问题是当我在add.volt
{{ form.render('tax_categories_id')}}
它在编辑模式下工作正常,但在新的记录时间它会给出错误
Phalcon\Forms\Exception:ID=tax\u categories\u ID的元素不是表单的一部分
我知道错误发生的原因,但我无法在控制器的
.volt
文件中验证此字段。您可以设置$options变量,然后在视图中检查它吗
//controller.php
$this->view->setVar('options', $options);
//view.volt
{% if options['edit'] %}
{{ form.render('tax_categories_id')}}
{% endif %]
假设您已将一些物品装箱,这些物品靠近:
<?php
use Phalcon\Forms\Form,
Phalcon\Forms\Element\Text,
Phalcon\Forms\Element\Hidden;
class UsersForm extends Form
{
public function initialize($options = [])
{
if ( isset($options['edit']) && $options['edit'] ) {
$this->add(new Hidden('id'));
}
$this->add(new Text('name'));
}
}
这是一本相当高级的(但也有一些空白)手册。我打赌你已经在那里了,但以防万一
顺便说一句,表单是迭代器和可遍历的,所以您可以对它们进行循环,只呈现声明的元素。写这篇文章是因为你把
{{form.render('tax_categories_id')}}
作为一个例子,这让我觉得你是在手工生成字段。只要检查元素是否存在就行了
// add.volt
{% if form.has('tax_categories_id') %}
{{ form.render('tax_categories_id') }}
{% endif %}
// add.volt
{% if form.has('tax_categories_id') %}
{{ form.render('tax_categories_id') }}
{% endif %}