如何避免从symfony表单写回数据?

时间:2016-03-03 03:15:49

标签: php forms symfony

我想创建只读隐藏字段。现在我的字段看起来像这样:

$builder
        ->add('question_category_id', HiddenType::class);

实体有方法:

public function getQuestionCategoryId() {
    return $this->getQuestion()->getQuestionCategory()->getId();
}

保存后我收到以下错误:

  

属性" question_category_id"也没有其中一种方法" addQuestionCategoryId()" /" removeQuestionCategoryId()"," setQuestionCategoryId()"," questionCategoryId()&# 34;," __ set()"或" __ call()"在课堂上存在并具有公共访问权限" Entity \ UnitQuestionAnswer"。

我可以添加虚拟方法

public function setQuestionCategoryId($id) {
    return $this;
}

但这不是正确的方法。

如何创建只读隐藏字段,或避免将数据写入实体?

1 个答案:

答案 0 :(得分:0)

S2.8有一个read_only属性可以做你想要的但是它已经在3.0中删除了。

禁用的属性应该有效。请注意,值本身实际上不会提交symfony.com/doc/current/reference/forms/types / ...因此,如果您对发布的数据执行任何有趣的事情,那么这可能是个问题。

我认为有可能愚弄内部,但这会比它的价值更麻烦。

就个人而言,鉴于我的get方法仅为表单添加,我只需添加一个相应的set方法并继续。