Codeigniter - контроллер не может отправить данные для просмотра - PullRequest
0 голосов
/ 22 февраля 2019

Я получил ошибку, подобную этой:

Обнаружена ошибка PHP. Серьезность: Уведомление

Сообщение: неопределенная переменная: tasks

контроллер

 public function show() {
    $data['tasks'] = array();
    $data['tasks'] = $this->Tasks_model->show_task()->result();
    $this->load->view('pages/all', $data);
 }

просмотр

<?php 
  if( isset($tasks) && ( is_array($tasks) && count($tasks)>0 ) ) {
    //echo"<pre>"; print_r($tasks); die();
    for($i=0;$i<count($tasks);$i++)
    { ?>
    <span><?php echo $task[0]['job']; ?></span><br />
   <?php } ?>
<?php } 
else { ?>
<span>No tasks records found.</span>
<?php } ?>

модель

public function show_task() {
    return $this->db->get('task');
}

что не так с моимкод

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Контроллер:

 public function show() {
    $data['tasks'] = array();
    $data['tasks'] = $this->Tasks_model->show_task();
    $this->load->view('pages/all', $data);
 }

Модель:

public function show_task() {
    return $this->db->get('task')->result();
}

Просмотр страницы:

<?php 
if( isset($tasks) && ( is_array($tasks) && count($tasks)>0 ) )
{
    //echo"<pre>"; print_r($tasks); die();
    for($i=0;$i<count($tasks);$i++)
    { ?>
    <span><?php echo $task[0]['job']; ?></span><br />
   <?php } ?>
<?php } 
else { ?>
<span>No tasks records found.</span>
<?php } ?>
0 голосов
/ 22 февраля 2019

Контроллер

public function show() {
    $this->$data['tasks'] = array();
    $this->$data['tasks'] = $this->Tasks_model->show_task();
    $this->load->view('pages/all', $data);
}

Просмотр

// Здесь вы также можете использовать цикл for для отображения данных.

<?php 
if( isset($tasks) && ( is_array($tasks) && count($tasks)>0 ) )
{
    //echo"<pre>"; print_r($tasks); die();
    for($i=0;$i<count($tasks);$i++)
    { ?>
    <span><?php echo $task[0]['job']; ?></span><br />
   <?php } ?>
<?php } 
else { ?>
<span>No tasks records found.</span>
<?php } ?>

EDIT =>

Модель

public function show_task() {
    $query = $this->db->get('task');
    if( $query->num_rows() > 0 ) //Always check you are getting result or not.
    {
        return $query->result_array(); //result_array() returns the query result as a pure array
    }
    else
    {
        return array();
    }
}

Здесь вы возвращаете return $this->db->get('task'); напрямую.Таким образом, вы ничего не получаете во Вью.Сначала необходимо присвоить $this->db->get('task') переменной, например, $query и передать массив результатов в контроллер return $query->result_array();.

Reference => https://www.codeigniter.com/userguide3/database/results.html#result-arrays

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...