Передача параметров в библиотеку Codeigniter - PullRequest
0 голосов
/ 14 января 2011

У меня есть пользовательская библиотека (в приложении \ библиотеки), которую я могу назвать нормально, однако я хочу передать данные из модели через контроллер: В контроллере:

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

1 голос
/ 14 января 2011

Вы передаете многомерный массив ($MenuData) в функцию, затем пытаетесь передать один из массивов второго уровня ($MenuData['daily']) внутри массива MD в цикл foreach, не ссылаясь на первый уровень.Вместо:

foreach($daily as $row) :

Попробуйте:

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

Или перед циклом foreach объявите переменную для хранения массива второго уровня:

$daily = $Params['daily']
foreach($daily as $row):
1 голос
/ 14 января 2011

Извините, но это может быть только я.Это .= означает конкатенацию в конце строки, уже найденной в переменной, но вы не использовали ее раньше.Итак, эта строка:

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

должна быть:

$menu = "<li><a href='#'>Daily</a>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...