NestedSet 구조의 sfWidgetFormDoctrineChoice (체크 박스 세트) 위젯 렌더링에 어려움이 있습니다.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'] ?>
를 그것은 것입니다 내 계층 구조의 첫 번째 수준 요소 만 표시 형태의 위젯 (체크 박스).
나는 나 위젯의 선택 내가 수집을 반복 할 방법을 반복 할 수 있도록 구현을 찾고 있어요 : 내 nestedSet을 표시 sfWidgetFormTree을 사용하고
<?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; ?>
난 정말 하나의 명령에 내 양식을 렌더링하고 싶지 않아요. 옵션과 자녀를 반복해야합니다. – Dziamid