Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 如果不可见,symfony表单字段是否初始化为null_Forms_Symfony_Doctrine Orm - Fatal编程技术网

Forms 如果不可见,symfony表单字段是否初始化为null

Forms 如果不可见,symfony表单字段是否初始化为null,forms,symfony,doctrine-orm,Forms,Symfony,Doctrine Orm,我在表单上有几个字段,如名称,说明,时间戳。 现在,在表单中,我只显示名称和描述,而不显示时间戳 public function __construct() { $this->setTimestamp(new \DateTime()); } 现在在我的数据库中,它是空的 要么条令未执行构造函数,要么这些字段在表单中显示时设置为null。 即使我没有显示它们。您需要将时间戳字段放在表单类型中 如果不需要显示,只需隐藏该字段并设置默认值即可 诸如此类: $builder->ad

我在表单上有几个字段,如
名称
说明
时间戳
。 现在,在表单中,我只显示名称和描述,而不显示时间戳

public function __construct()
{
    $this->setTimestamp(new \DateTime());
}
现在在我的数据库中,它是空的

要么条令未执行构造函数,要么这些字段在表单中显示时设置为null。
即使我没有显示它们。

您需要将时间戳字段放在表单类型中

如果不需要显示,只需隐藏该字段并设置默认值即可

诸如此类:

$builder->add('timestamp', 'hidden', array(
    'data' => new \DateTime(),
));

不要忘记在小树枝模板的末尾发送所有隐藏字段的
{form_rest(form)}

表单中没有包含时间戳属性,还是将其设置为隐藏字段?我正在模板中使用
{form_row(form.name)}
。所以我只显示必填字段。他们的状态不好。我不知道它们是否被隐藏,如果时间戳不在你的形式中,那么它就不会在你的实体中结束。需要将其添加为隐藏字段。但是,我怀疑您真的希望实体处理时间戳本身。也许不是。取决于您的用例。为什么我不能将其添加到构造函数中?您能否在控制器中显示实体中的
setTimestamp()
,以及表单中的操作?我假设
setTimestamp($timestamp)
中或者在创建表单的方式中存在错误。如果表单中没有属性字段,则不会触及该字段,因此时间戳应保留其默认值。也许您可以尝试以下操作:
$test=newEntityClass();var_dump($test->getTimestamp())
查看时间戳是否实际设置在
\uuu construct()
上。但是,如果我使用friebug并更改该值会怎么样?您的请求的验证需要在客户端和服务器上进行。服务器验证应防止firebug执行此类操作。搜索它=)