Когда я пытаюсь запустить следующее приложение в CodeIgniter, я получаю следующую ошибку:
A PHP Error was encountered Severity: Notice Message: Undefined variable: data Filename: views/blog.php Line Number: 1
Я пытался понять это почти час, и я не могу заставить его работать. Мой вид выглядит следующим образом:
<?php foreach($data->result() as $row): ?> <h1><?php echo $row->title; ?></h1> <p><?php echo $row->post; ?></p> <?php endforeach; ?>
Мой контроллер выглядит так:
<?php class Blog extends CI_Controller { public function index() { $this->load->database(); $data = $this->db->get('posts'); $this->load->helper('url'); $this->load->view('header'); $this->load->view('blog', $data); $this->load->view('footer'); } }
Кто-нибудь знает, как это исправить?
Вы должны изменить свой контроллер и просмотреть
массив, который вы отправляете через данные, должен выглядеть следующим образом:
$data['post'] = $this->db->get('posts');
и, на ваш взгляд,
<?php foreach($post->result() as $row): ?> <h1><?php echo $row->title; ?></h1> <p><?php echo $row->post; ?></p> <?php endforeach; ?>
codeiginter отправляет переменные для просмотра с использованием массива $ data. Если вы хотите отправить что-то в представление, введите внутри $ data в виде $ data ['key'] = $ val;
Попробуйте использовать $blog
вместо $data
в первой строке вашего представления.
Я не уверен, но вы назначаете $data
ключевому blog
в вашем контроллере …
Переменные должны быть переданы в представление как пары ключ-значение внутри массива. Здесь это объясняется.
Я думаю, что уведомление об ошибке не происходит на вашем контроллере, а на вашем представлении (blog.php). Вы забыли передать $ data в представление. Вы должны перестроить переменную, передаваемую вашему представлению, примерно так:
$data['data'] = $this->db->get('posts'); $this->load->view('blog', $data);