【发布时间】:2010-05-19 13:12:35
【问题描述】:
我是 symfony 的新手,我有 2 个与我的表“页面”相关的字段; created_by 和 updated_by。这些作为外键与用户表 (sfGuardUser) 相关。我希望将这些从编辑/新表单中隐藏,因此我将 generator.yml 文件设置为不显示这些字段:
form:
display:
General: [name, template_id]
Meta: [meta_title, meta_description, meta_keywords]
现在我需要设置保存的字段。我整天都在寻找如何做到这一点,并尝试了一百种方法。我已经开始工作的方法是,在动作类中:
protected function processForm(sfWebRequest $request, sfForm $form)
{
$form_params = $request->getParameter($form->getName());
$form_params['updated_by'] = $this->getUser()->getGuardUser()->getId();
if ($form->getObject()->isNew()) $form_params['created_by'] = $this->getUser()->getGuardUser()->getId();
$form->bind($form_params, $request->getFiles($form->getName()));
所以这行得通。但我觉得理想情况下我不应该修改网络请求,而是直接修改表单/对象。但是,我在以下方面没有取得任何成功:
$form->getObject()->setUpdatedBy($this->getUser()->getGuardUser());
如果有人能就解决此类问题的最佳方法提供任何建议,我将不胜感激。
谢谢, 汤姆
【问题讨论】: