项目:Symfony 2.4、FOSUserBundle、SonataUserBundle。
任务
我有User
它的实体和个人资料表格。我想为提醒订阅添加复选框。这保存在不同的实体“设置”中(单向关系设置 -> 用户)。如果用户复选框的“设置”中有行,则应选中,如果行不存在 - 应取消选中。所以我需要:
- 渲染复选框
- 加载数据
- 保存数据
执行
1. 渲染复选框
我知道这取决于字段类型(因为我认为我可以使用entity
类型)但现在我有这个代码:
class ProfileFormType extends ProfileType
{
$builder
->add("subscribeReminder", "checkbox",
array(
"mapped" => false,
'required' => false,
)
);
}
2.加载数据
我认为可以在字段选项中使用“class”和“query_builder”来完成,但我没有成功。设置存在时需要将复选框设置为 true。
3. 保存数据
我想我可以将数据保存在 FormHandler->onSuccess() 中(将存储库传递给构造函数)。需要删除行或创建一个。
在路上
我完全迷失在文档中。可以实现 EventListeners、EventSubscribers。尝试了不同的方法,但没有运气。我认为(希望)有一些更简单的东西。