我想创建只读隐藏字段。现在我的字段看起来像这样:
$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;
}
但这不是正确的方法。
如何创建只读隐藏字段,或避免将数据写入实体?
答案 0 :(得分:0)
S2.8有一个read_only属性可以做你想要的但是它已经在3.0中删除了。
禁用的属性应该有效。请注意,值本身实际上不会提交symfony.com/doc/current/reference/forms/types / ...因此,如果您对发布的数据执行任何有趣的事情,那么这可能是个问题。
我认为有可能愚弄内部,但这会比它的价值更麻烦。
就个人而言,鉴于我的get方法仅为表单添加,我只需添加一个相应的set方法并继续。