将数组从模型传递给控制器

时间:2016-07-15 12:04:10

标签: php codeigniter

在我的模型中,我收到了一个数组中的所有电子邮件。我想在控制器中显示这一系列电子邮件,而不是在视图中。

我的模型是:

     public function cron_job(){
     $this->db->select('email');
     $this->db->from('wc_buyer');
     $query = $this->db->get();
     return $query; 
  }

,控制器是:

    public function cron_job(){
    $this->load->model('home/Home_model');
    $data['a'] = $this->Home_model->cron_job();
}

如何在控制器中以变量形式显示此数组电子邮件?

4 个答案:

答案 0 :(得分:1)

您在控制器使用result_array()中回显您的电子邮件

$email=$this->Home_model->cron_job();// get data from model
foreach ($email->result_array() as $row)// fetch data form query 
{
        echo $row['email'];
}

答案 1 :(得分:1)

试试这个

     public function cron_job(){
             $this->db->select('email');
             $this->db->from('wc_buyer');
             $query = $this->db->get();
             $result = array();
             foreach ($query->result() as $row){
                $result[] = $row;
             }
             return $result; 
        }

 public function cron_job(){
    $this->load->model('home/Home_model');
    $data['a'] = $this->Home_model->cron_job();
    print_r($data['a']);
}

答案 2 :(得分:0)

试试这个,

$data = $this->Home_model->cron_job();
print_r($data); // To print array

答案 3 :(得分:0)

CodeIgniter提供了一个方法result_array(),它将生成的查询返回到数组中,在您的情况下,这样做。

在你的模特中

public function cron_job(){
     $this->db->select('email');
     $this->db->from('wc_buyer');
     $query = $this->db->get();
     return $query->result_array(); 
}

在你的控制器中,

public function cron_job(){
    $this->load->model('home/Home_model');
    $data['a'] = $this->Home_model->cron_job();
    $this->load->view('path/to/the/file', $data);
}

在您看来,

<?php foreach ($a as $key => $value) : ?>
  <?php echo $value['your_table_field']; ?>
<?php endforeach; ?>