2011-01-14 99 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