我正在使用Yii框架构建一个网站问题。
在网站上我有一个照片模型的表单。照片模型与商店模型相关,如下所示:
商店模型
public function relations()
{
return array(
'photos' => array(self::HAS_MANY, 'Photo', 'storeId'),
...
照片模型
public function relations()
{
return array(
'store' => array(self::BELONGS_TO, 'Store', 'storeId'),
);
}
在照片表单中,我试图获取所有商店列表的下拉列表,如下所示:
<div class="row">
<?php echo $form->labelEx($model,'storeId'); ?>
<?php
//The below line is causing the problem
echo $form->dropDownList($model,'storeId',
CHtml::listData(Store::model()->findAll(), 'id', 'name'));
?>
<?php echo $form->error($model,'storeId'); ?>
</div>
正在发生的事情是页面渲染在dropdownList行中出现故障。如果我删除该行,表单将正确显示。我有一种感觉,这可能是因为商店模特与照片模型的关系,但无法弄清楚原因,或者如何解决这个问题。
有人可以了解可能发生的事情吗?谢谢!
编辑:
部分想出来了!
我通过添加以下代码暂时解决了这个问题:
$criteria = new CDbCriteria();
$criteria->limit = 10;
$stores = Store::model()->findAll($criteria);
似乎问题是Store表有太多记录(超过35000),这导致了一些问题。也许这是一个记忆问题?
答案 0 :(得分:2)
您是否在日志文件中出现任何错误?
如果上面的代码完全属于你,那么你可能只是错过了一个结束括号......
<?php
//The below line is causing the problem
echo $form->dropDownList(
$model,
'storeId',
CHtml::listData(Store::model()->findAll(), 'id', 'name')
);
?>