YIi PHP - 帶有 foreach 循環的輸出數組 (YIi PHP - Output array with a foreach loop)


問題描述

YIi PHP ‑ 帶有 foreach 循環的輸出數組 (YIi PHP ‑ Output array with a foreach loop)

我正在嘗試使用 Yii PHP 框架返回導航菜單,但我的控制器只輸出數組中的第一項,這是我的代碼。請注意,此模式沒有使用傳統的 MVC,我正在請求數據的模型正在站點範圍內顯示,而不是直接顯示到其控制器‑> 視圖。

模型 ‑ 獲取數據;

p>
//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:

change getPagesMenuItems function as below:

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;
}

(by grhmstwrtChetan Ameta)

參考文件

  1. YIi PHP ‑ Output array with a foreach loop (CC BY‑SA 2.5/3.0/4.0)

#controller #yii #foreach #PHP #arrays






相關問題

覆蓋我的控制器,我應該在哪個事件中檢查 cookie? (Overriding my controller, which event should I check for a cookie in?)

ASP.NET MVC,將模型從視圖傳遞到控制器 (ASP.NET MVC, passing Model from View to Controller)

Ruby on Rails:更改列表順序後未顯示錯誤消息 (Ruby on Rails: Error messages not displaying since changing order of a list)

Успадкоўванне кантролера ASP.NET MVC 4 (ASP.NET MVC 4 controller inheritance)

如何在 CakePHP 中創建自定義 MySQL 查詢? (How to create custom MySQL queries in CakePHP?)

Respond_to 沒有調用正確的格式 (Respond_to does not call the right format)

Rails - 尋找錯誤 ID 的 JSON 回調 (Rails - JSON callback looking for wrong id)

YIi PHP - 帶有 foreach 循環的輸出數組 (YIi PHP - Output array with a foreach loop)

使用 SQL 將方法邏輯移動到 Rails 項目中的模型 (Moving method logic with SQL to model in rails project)

MVC 為什麼要單元測試控制器 (MVC Why unit test controllers)

Jquery & Rails 3:從 js 文件運行控制器操作? (Jquery & Rails 3: Run controller action from js file?)

.net core mvc:在區域上添加具有 crud 功能的控制器未正確生成代碼和鏈接 (.net core mvc: adding controller with crud functionality on area didn't generate code and link correctly)







留言討論