Формы с родственными моделями - PullRequest
0 голосов
/ 25 июня 2011

У меня проблема с сайтом, который я создаю с использованием фреймворка Yii.

На сайте у меня есть форма для модели Фотографии.Модель Photos относится к модели Stores следующим образом:

Модель Stores

public function relations()
{
return array(
'photos' => array(self::HAS_MANY, 'Photo', 'storeId'),
...

Модель Photos

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 Ответ

2 голосов
/ 26 июня 2011

Получаете ли вы какие-либо ошибки в файлах журнала?

Если приведенный выше код является именно вашим, возможно, вам просто не хватает закрывающей скобки ...

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