Php 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

我是Phalcon框架的初学者,我必须在
.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 %}