Desidero elencare alcuni nomi di Categorie nella mia pagina main.php di layout. Dato che il layout non ha alcun controller o modello associato, vorrei creare un metodo statico come questo su Categoria modello:Yii - come recuperare i dati del modello in una pagina di layout?
public static function getHeaderModels()
{
// get all models here
return $models;
}
e poi nel layout principale
<?php
$models = Category::getHeaderModels();
foreach($models as $model)
{
// ....
}
?>
La mia domanda è molto semplice: Come posso recuperare i nomi di queste categorie dal modello?
Ecco il modello completo:
class Category extends CActiveRecord {
public static function model($className=__CLASS__) {
return parent::model($className);
}
public function tableName() {
return 'category';
}
public function rules() {
return array(
array('parent_id', 'numerical', 'integerOnly' => true),
array('name', 'length', 'max' => 255),
array('id, parent_id, name', 'safe', 'on' => 'search'),
);
}
public function relations() {
return array(
'users' => array(self::MANY_MANY, 'User', 'categories(category_id, user_id)'),
);
}
public function scopes()
{
return array(
'toplevel'=>array(
'condition' => 'parent_id IS NULL'
),
);
}
public function attributeLabels() {
$id = Yii::t('trans', 'ID');
$parentId = Yii::t('trans', 'Parent');
$name = Yii::t('trans', 'Name');
return array(
'id' => $id,
'parent_id' => $parentId,
'name' => $name,
);
}
public function search() {
$criteria = new CDbCriteria;
$criteria->compare('id', $this->id);
$criteria->compare('parent_id', $this->parent_id);
$criteria->compare('name', $this->name, true);
return new CActiveDataProvider(get_class($this), array(
'criteria' => $criteria,
));
}
public static function getHeaderModels() {
//what sintax should I use to retrieve the models here ?
return $models;
}