【发布时间】:2011-07-04 12:47:18
【问题描述】:
我在为 NestedSet 结构呈现 sfWidgetFormDoctrineChoice(复选框集)小部件时遇到了困难。
class ModelForm extends BaseModelForm
{
public function configure()
{
$this->setWidget('relatedmodel_list', new sfWidgetFormDoctrineChoice(array(
'expanded' => true,
'multiple' => true,
'model' => 'Relatedmodel',
'table_method' => 'fetchTree'
)));
}
}
class RelatedmodelTable extends Doctrine_Table
{
/**
* Gets tree elements in one query (one root only)
*/
public function fetchTree()
{
$q = $this->createQuery('m')
->addOrderBy('m.lft');
$tree = $q->execute(array(), Doctrine_Core::HYDRATE_RECORD_HIERARCHY);
return $tree;
}
}
现在,如果我像这样渲染表单:<?php echo $form['relatedmodel_list'] ?>
它只会为我的层次结构的第一级元素显示表单小部件(复选框)。
我正在寻找一种实现,它允许我以迭代集合的方式迭代小部件的选择:
<?php foreach ($form['relatedmodel_list'] as $widget): ?>
<?php echo $widget->render() ?>
<?php foreach ($widget->getChildren() as $child_widget): ?>
<?php echo $child_widget->render() ?>
<?php endforeach; ?>
<?php endforeach; ?>
【问题讨论】:
标签: symfony1 doctrine symfony-1.4 symfony-forms doctrine-1.2