Yii jointure gauche en CDbCriteria

Ai deux tables:

Contenu

 id |  text
------------
 1  | text1
 2  | text2
 3  | text3
 4  | text4

Photos

 id |  content_id |  src
-----------------------------
 1  |      1      |  img1.png
 2  |      1      |  img2.png
 3  |      2      |  img3.png
 4  |      3      |  img1.png

Essayer d'obtenir un contenu avec la gauche rejoint les photos de la troisième contrôleur.

Mon code:

$oDBC = new CDbCriteria();
$oDBC->select = 't.*,p.*'; 
$oDBC->join = 'LEFT JOIN photos p ON t.id = p.content_id'; 
$oDBC->condition = 't.step_id = "'.$model->id.'"';

$content = Content::model()->find($oDBC);

Dans ContentController ajout de la fonction:

public function relations()
{
    return array('photos' => array(self::HAS_MANY, 'Photos', 'content_id');
}

Mais print_r($content) renvoie uniquement les données de contenu, sans photos de données.

Comme dans cette réponse, j'ai essayé:

print_r($content->photos);

mais il a obtenu Property "Content.photos" is not defined.

Ce que je fais mal?

  • ajout d'une fonction dans contentcontroller? il devrait être dans le modèle de contenu
  • Ahhh, j'ai perdu la moitié de la journée sur cette. Merci! Veuillez l'ajouter comme réponse et je vais le marquer solution.
InformationsquelleAutor Narek | 2012-12-13