Je suis confronté à un problème avec un site que je construis en utilisant le framework Yii.Formulaires avec des modèles apparentés
Dans le site j'ai un formulaire pour le modèle Photos. Le modèle de photos est liée au modèle des magasins comme si:
Magasins Modèle
public function relations()
{
return array(
'photos' => array(self::HAS_MANY, 'Photo', 'storeId'),
...
Photos Modèle
public function relations()
{
return array(
'store' => array(self::BELONGS_TO, 'Store', 'storeId'),
);
}
Dans la forme de photos, je suis en train d'obtenir un menu déroulant avec la liste de tous les magasins comme tels:
<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>
Qu'est-ce qui se passe est que le rendu de la page se décompose à la ligne dropdownList. Si je supprime la ligne, le formulaire s'affiche correctement. J'ai le sentiment que cela pourrait être dû à la relation du modèle de magasin avec le modèle photo, mais je n'arrive pas à comprendre pourquoi ou comment résoudre ce problème.
Quelqu'un peut-il nous éclairer sur ce qui pourrait se passer? Merci!
Édition:
Compris en partie!
Je fixe temporairement le problème en ajoutant le code suivant:
$criteria = new CDbCriteria();
$criteria->limit = 10;
$stores = Store::model()->findAll($criteria);
Il semble que le problème est que la table de magasin a trop de dossiers (plus de 35000), ce qui est à l'origine des problèmes. Peut-être que c'est un problème de mémoire?
ce qui est l'erreur? avez-vous essayé 'Store :: model() -> findAll()' en dehors de la fonction déroulante? – ldg
Il n'y a pas d'erreur - la page montre seulement le HTML jusqu'au point où j'ai la commande Store :: model() -> findAll() (même en dehors de la liste déroulante). Même la sortie de journalisation est maintenant affichée. Le HTML est littéralement juste limité à la vue, juste avant la commande. –
alors, oui, il pourrait être temps de sortir - est l'intention de montrer tous les magasins 35k dans une liste déroulante HTML? – ldg