YIi PHP - 带有foreach循环的输出数组

时间:2015-12-08 09:41:57

标签: php arrays yii foreach controller

我试图使用Yii PHP框架返回导航菜单,但我的控制器只输出数组中的第一项,这是我的代码。请注意,此模式不是使用传统的MVC,我要求数据的模型是在站点范围内显示的,而不是直接显示在其控制器 - >视图中。

模型 - 获取数据;

//output pages for getPagesMenuItems() in base controller
        public function getAllPages(){
            $criteria = new CDbCriteria();
            $criteria->condition = "visible = 1";
            return Pages::model()->findAll($criteria);
        }

组件中的基本控制器

public $pagesMenuItems = array();
$this->pagesMenuItems = $this->getPagesMenuItems();

protected function getPagesMenuItems() {
        //Non admin users - links to pages
        if (Yii::app()->user->isGuest){

            $rows = Pages::getAllPages();

            foreach($rows as $row) {
            return    array(
                    //$row->id , $row->title , $row->guid , $row->visible
                    array('label' => $row->title, 'icon' => 'fa fa-times', 'url' => array('/admin/pages/view/id/' . $row->id)),
                    '---',
                );

            }
//            return array();
        }
        else {}
    }

这是main.php中的视图

$this->widget('booster.widgets.TbMenu', array(  
                'items' => $this->pagesMenuItems,
                'id' => 'pagesNav'
            ));

我知道问题是在foreach循环中打包数组,因为我已经测试了模型的输出并且所有数据都是正确的

任何人都可以在我的控制器中看到我出错的地方吗?

由于

1 个答案:

答案 0 :(得分:3)

更改getPagesMenuItems功能如下:

protected function getPagesMenuItems() {
    //Non admin users - links to pages
    $data = array();
    if (Yii::app()->user->isGuest){

        $rows = Pages::getAllPages();

        foreach($rows as $row) {
            $data[] = array('label' => $row->title, 'icon' => 'fa fa-times', 'url' => array('/admin/pages/view/id/' . $row->id));

        }
    }
    else {}
    return $data;
}