表格与相关模型

时间:2011-06-25 19:00:02

标签: php yii yii-cmodel

我正在使用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),这导致了一些问题。也许这是一个记忆问题?

1 个答案:

答案 0 :(得分:2)

您是否在日志文件中出现任何错误?

如果上面的代码完全属于你,那么你可能只是错过了一个结束括号......

<?php 
//The below line is causing the problem
echo $form->dropDownList(
  $model,
  'storeId', 
  CHtml::listData(Store::model()->findAll(), 'id', 'name')
); 
?>