php – Yii – 如何将模型数据检索到布局页面?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Yii – 如何将模型数据检索到布局页面?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望在我的布局main.PHP页面上列出一些类别名称.
由于布局没有任何关联的控制器或模型,我希望在Category模型上创建这样的静态方法
public static function getHeaderModels()
{
   // get all models here
   return $models;
}

然后在主要布局中

<?PHP
$models = Category::getHeaderModels();
foreach($models as $model)
{
   // ....
}
?>

我的问题是一个非常基本的问题:
如何从模型中检索这些类别名称

这是完整的模型:

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;

        }
可能这个答案可以帮到你.首先,您必须创建一个Widget,以便更有效地使用它.

首先创建一个新的小部件.假设名称为CategoryWidget.将此小部件放在组件目录protected / components下.

class CategoryWidget extends CWidget {

    public function run() {
        $models = Category::model()->findAll();

        $this->render('category',array(
            'models'=>$models   
        ));
    }
}

然后为此窗口小部件创建一个视图.文件名是category.PHP.
把它放在Protected / components / views下

category.PHP

<?PHP if($models != null): ?>
<ul>
    <?PHP foreach($models as $model): ?>
    <li><?PHP echo $model->name; ?></li>
    <?PHP enDForeach; ?>
</ul>
<?PHP endif; ?>

然后从主布局中调用此小部件.

main.PHP

// your code ...

<?PHP $this->widget('CategoryWidget') ?>

...

脚本宝典总结

以上是脚本宝典为你收集整理的php – Yii – 如何将模型数据检索到布局页面?全部内容,希望文章能够帮你解决php – Yii – 如何将模型数据检索到布局页面?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。