2011-01-14 35 views
0

我有一個自定義庫(應用程序\庫),我可以叫正常,但是我想通過從模型數據,通過控制器: 在控制器:傳遞PARAMS到笨庫

$MenuData['daily'] = $this->bookmarks_model->getDaily(); 

$this->load->library('MyMenu'); 

$menu = new MyMenu; 

$data['menu'] = $menu->ShowMenu($MenuData); 

在MyMenu菜單庫:

function ShowMenu($Params) 
{ 
$CI =& get_instance(); 
$CI->load->helper('url'); 
$CI->config->item('base_url'); 
//More Code here 
$menu .= "<li><a href='#'>Daily</a>"; 
$menu .= " <ul>"; 
foreach($daily as $row) : 
    $menu .= "<li><a href='" . $row->url . "' target='_blank'>" . $row->short_title . "</a></li>"; 
endforeach; 
$menu .= " </ul> "; 
$menu .= " </li>"; 
//More Code here 
} 
return $menu; 

但是我發現了一個未定義的變量錯誤,併爲每個無效的參數。 任何幫助非常感謝!

+0

我們需要看到每天$是診斷這個foreach的「無效論點」。它需要一個數組 – Ross

+0

羅斯 - 有一個函數返回一個數組: function getDaily(){ $ q = $ this-> db-> get_where('bookmarks',array('tags'=>'daily' ),10); ($ q-> num_rows()> 0)foreach($ q-> result()as $ row){ $ data [] = $ row; } return $ data; } – dmag

回答

1

你傳入多維陣列($MenuData)的功能,然後試圖通過所述第二水平陣列中的一個($MenuData['daily'])內將MD數組引用到foreach循環而不引用第一級。相反的:

foreach($daily as $row) : 

嘗試:

foreach($Params['daily'] as $row) : 

或者您的foreach循環之前聲明一個變量來保存第二級陣列:

​​
+0

是的!就是這樣 - 非常感謝 – dmag

1

對不起,但它可能只是我。這個.=意味着在已經在變量中找到的字符串的末尾進行連接,但是現在你還沒有使用它。所以應此行:

$menu .= "<li><a href='#'>Daily</a>"; 

是:

$menu = "<li><a href='#'>Daily</a>"; 
+0

感謝馬特 - 這不是問題,因爲我之前在代碼中使用過它// //更多代碼。不想發佈全部。謝謝你的回答 – dmag