我正在尝试在 Yii 的下拉列表中列出来自 treview 的值。所以,我已经有一个函数来连接路径中的树视图,比如(例如primary\secondary\terciary。我调用这个函数,从数据中传递ID,函数选择父母,从数据库中创建列表。
public static function getPath($id) {
$post=PlanoAssunto::model()->find('id=:id', array(':id'=>$id));
if ($post->id_pai == null) {
$row=$post->assunto;
$data= $row;
}
else {
$row=$post->assunto;
$row=PlanoAssunto::getPath($post->id_pai).'/'.$row;
$data= $row;}
if (isset($data)) {
return $data;
}
else {
$data = 'Nulo';
return $data;
}
}
这在视图中工作正常,使用这个:
<?php echo $form->labelEx($model,'id_pai');?>
<?php if (isset($_GET['id'])){
echo PlanoAssunto::model()->getPath($_GET['id']); }
else { echo "Novo Assunto Principal";}
?>
但现在我想用路径列表填充表单中的选择。而且我无法在 CHtml::listData 中运行函数。我正在尝试使用这个模型,但没有成功:
public static function getTypeOptions() {
return CHtml::listData(PlanoAssunto::model()->findAll(),'id','getPath($id)');
}
那么,我做错了什么?我无法设法将树视图以路径格式放入值中,与他在数据库中的 ID 相关联。
我不知道如何填充 ListData 中的值,我的 HTML 返回 ID,但值中有任何数据。
<select name="Areaxplanoassunto[idAssunto]" id="Areaxplanoassunto_idAssunto">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
<option value="4"></option>
<option value="5"></option>
<option value="6"></option>
<option value="7"></option>
<option value="9"></option>
<option value="10"></option>
<option value="11"></option>
</select>
谢了。(我来自巴西,英语很抱歉)