将Params传递给Codeigniter图书馆

时间:2011-01-14 10:58:44

标签: codeigniter

我有一个自定义库(在application \ libraries中)我可以称之为正常,但是我想通过控制器从模型传递数据: 在控制器中:

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

但是我得到一个未定义的变量错误和每个的无效参数。 任何帮助非常感谢!

2 个答案:

答案 0 :(得分:1)

抱歉,但可能只是我。这个.=意味着在已经在变量中找到的字符串的末尾连接,但是之前你还没有使用它。这一行应该是这样的:

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

是:

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

答案 1 :(得分:1)

您正在将多维数组($MenuData)传递给该函数,然后尝试将MD数组中的第二级数组($MenuData['daily'])之一传递给foreach循环,而不引用第一级。而不是:

foreach($daily as $row) :

尝试:

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

或者在你的foreach循环声明一个变量来保存第二级数组之前:

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