問題描述
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 grhmstwrt、Chetan Ameta)