Codeigniter 4 передает массив для просмотра

#codeigniter #codeigniter-4

#codeigniter #codeigniter-4

Вопрос:

Довольно новичок в codeigniter, и я просто не могу найти правильный способ загрузки массива в представление.

например, допустим, у меня есть массив, подобный

   $data = [
    'title' => 'my title,
    'desc' => 'my desc,
  ];
  

я могу передать это своему представлению следующим образом

 return view('myview',$data);
  

затем просто повторите его, на мой взгляд, как

 <h1><?= $title ?></h1>
<p><?= $desc ?></p>
  

Это работает нормально. но теперь допустим, у меня есть другой массив, например :

 $moredata =[
   'more_data' => 'some more data',
   'even_more_data' => 'even more data',
];
  

если я попытаюсь добавить это в свой массив данных, например

 $data[] = $moredata
  

когда я пытаюсь получить доступ к ‘more_data’ или ‘even_more_data’, на мой взгляд, как

 <?= $more_data ?>
  

я получаю ошибку неопределенной переменной для $moredata. Итак, как мне получить доступ к переменным в этом новом массиве? правильно ли я их объявляю?

также, если бы я хотел перебрать вторичный массив, как мне это сделать. попытка

 <?php foreach($moredata as $items){ ?>
<li><?php echo $items; ?></li>
<?php } ?>
  

также выдает ошибку неопределенной переменной для $moredata

любая помощь о том, как сделать это правильно в codeigniter 4, приветствуется.

Ответ №1:

Codeigniter использует ключ массива, который вы ему даете, для создания имен переменных.

Вы должны инициализировать его таким образом :

 $moredata =[
   'more_data' => 'some more data',
   'even_more_data' => 'even more data',
];
// key of your array will be a variable name in your view
$data['my_var_name_in_view'] = $moredata
return view('myview',$data);
  

Тогда, по вашему мнению, вы сможете выполнить это :

 <?php foreach($my_var_name_in_view as $items){ ?>
    <li><?php echo $items; ?></li>
<?php } ?>