Symfony 1.4 embedRelation where子句

时间:2012-08-10 12:18:07

标签: symfony-1.4 symfony-forms doctrine-1.2

是否可以在embedRelation上设置where子句?

$this->embedRelation('treatedStones');

我需要在stone_free = 0

的地方获得treatStones

1 个答案:

答案 0 :(得分:1)

我认为您无法使用embedRelation执行此操作,但您可以在sfFormDoctrine中完成此操作。

$subForm = new sfForm();

// create a custom query e.g. in `TreatedStoneTable::queryFree($relatedId)` and
// a method to the class of `$this->getObject()` to retrieve free stones 
// e.g. `Class::getFreeTreatedStones()` to call the query
foreach ($this->getObject()->getFreeTreatedStones() as $index => $childObject)
{
  $form = new TreatedStoneForm($childObject);

  $subForm->embedForm($index, $form);
  $subForm->getWidgetSchema()->setLabel($index, (string) $childObject);
}

$this->embedForm('treated_stones', $subForm);

您可以在docs找到有关表单工作方式的更多详细信息。