Seguendo quanto descritto nella documentazione (http://www.yiiframework.com/doc/cookbook/61/) sto cercando di creare un menu dinamico che preleva i dati dal dbase.
Nell’esempio i dati vengono estrapolati direttamente dalla tabella ‘Hierarchy’ ma visto che ho l’esigenza di avere dei link piu’ seo li prendo da una seconda tabella che contiene il contenuto delle pagine ‘Page’.
Nella tabella ‘Page’ ho il link della pagina ma non riesco a prelevare il contenuto.
Ho creato la relazione nel modello Page.php:
public function relations()
{
return array(
'menu'=>array(self::BELONGS_TO, 'Menutree', 'menuID','alias'=>'menu'),
);
}
Nel layout main.php prelevo i dati (Relazione ->menu):
$model = Page::model()->with(array(‘menu’))->findByPk(1);
La funzione getListed viene richiamata dal modello Page.php:
public function getListed() {
$subitems = array();
if($this->menu[childs]) foreach($this->menu[childs] as $child) {
$subitems[] = $child->getListed(); <---- Va a Hierarchy model
}
if($this->url =='home') $this->url=Yii::app()->baseUrl;
$returnarray = array('label' => $this->title, 'url' => $this->url);
if($subitems != array()) $returnarray = array_merge($returnarray, array('items' => $subitems));
return $returnarray;
}
A questo punto sorge il problema, quando vengono trovati dei sottomenu viene richiamata la funzione dal modello Hierarchy e non riesco ad estrapolare il link contenuto nella tabella Page.
Spero di essere stato chiaro…