Я использую CodeIgniter Framework. Я отправляю массив в мое представление, но я не могу получить массив в моем представлении.
Это мой код контроллера:
public function edit($id)
{
$record = $this->Start_model->get_entry($id);//receiving array from model
$this->load->view('edit',$record);//send array to my view
}
Это мой массив на контроллере, который я отправляю:
Array
(
[0] => Array
( [id] => 1 [name] => Hamza [age] => 20 [address] => audit and account [phone] => 03000000000 )
)
Но когда я вызываю это представление массива, я получаю эту ошибку:
Неопределенная переменная: запись
Вот как я получаю мой массив в поле зрения:
<?php
echo '<pre>';
print_r($record);
echo '</pre>';
?>
Теперь я знаю, что отправляю массив на мой взгляд, но Я хочу знать, есть ли массив на мой взгляд или нет. Я могу получить запись с помощью другого метода, но я думаю, что это не очень хорошая практика. Кто-нибудь может мне помочь, как я могу определить, есть ли массив в моем представлении?
Codeigniter извлекает массив, переданный в представление, создавая переменные на основе ключей массива. Чтобы работать как хочешь, передай массив с ключом или record
и значение вашего массива:
public function edit($id)
{
$data = array('record' => $this->Start_model->get_entry($id));
$this->load->view('edit',$data);//send array to my view
}
Тогда это будет работать на ваш взгляд:
<?php
echo '<pre>';
print_r($record);
echo '</pre>';
?>
Как вы сейчас отправляете данные, они будут извлечены в отдельные переменные для каждого элемента в массиве, однако, так как ваш массив численно проиндексирован, а правила имен переменных php запрещают числовые имена переменных, вы не можете получить доступ к данным.
В вашем контроллере вместо этого отправьте родительский массив:
public function edit($id)
{
$data = array();
$data['record'] = $this->Start_model->get_entry($id); // provided this is not empty
$this->load->view('edit', $data);
}
Тогда по вашему мнению:
foreach($record[0] as $key => $value) {
echo $value['id'];
// the rest blah blah
}