2014-01-31 2 views
0

Я передаю данные из моего контроллера:Переменные не извлечет - контроллер для просмотра CodeIgniter

$data = $this->post->get_post($postID); 
$data['errors']; 
$this->load->view('register_user.php', $data); 

Но почему-то при попытке извлечь массив в виде, например, так:

extract($data); 
foreach ($data as $result) 
{ 
echo $result,'<br>'; 
} 
endforeach; 

Я получаю $data is null Ошибка.

В чем причина нулевого массива?

Пара вещей:

  1. «пост» представляет собой модель, которую я построить в класс, который тянет определенную строку в определенной таблице, содержащей все детали для конкретной должности. При попытке эхо-массива в контроллере он показывает.

  2. может вставить новый ключ и значение в массив ('errors' => 0) причину ошибки?

+0

пожалуйста, 'var_dump ($ данных);' в контроллере. Вы увидите, что ваши данные представляют собой массив объектов (в зависимости от вашего метода модели вы используете '..-> result()' или '...-> array_result();' поэтому, пожалуйста, также покажите нам модель. – Kyslik

ответ

2

Вы извлекаете данные в виде следующим образом.

$errors

Все, что вы положили в $data переменной массива и вы передаете переменную $ данных для просмотра, является «переделанный» в таким образом, что каждый элемент (индекс) является переменной в поле зрения.

Итак, у контроллера есть $data['news'] = array(); $data['errors'] = array(); Но у нас есть только 2 переменные, с которыми мы можем работать с $news и $errors.

пожалуйста, произвести корректировку в свой код следующим образом

$data['post'] = $this->post->get_post($postID); 
var_dump($data['post']); 
$this->load->view('register_user.php', $data); 

и ввиду

foreach ($post as $result)...

+0

' $ errors' тоже не будет работать. – t0mgs

+0

Это работает, но я все еще не могу назначить «ошибки» в контроллере ... только в представлении, что означает, что результат всегда будет таким же. хочу, чтобы это было так - мне нужно, чтобы контроллер получал информацию и решал, какое значение '$ errors' нужно отправить в представление. – t0mgs

+0

OK! Получил это в конце концов. Спасибо! – t0mgs

0

Вы можете получить доступ к данным с ключами массива непосредственно в целях

Например:

if 
    $data = array(
     'test1' => 'test1_data', 
     'test2' => 'test1_data' 
    ); 

В этом случае вы можете получить доступ к $test1 непосредственно как

<?php echo $test1; ?> 
Смежные вопросы