dqg63264
2013-05-02 23:40
浏览 31
已采纳

CodeIgniter - 从模型到控制器向页面发送数组[关闭]

I am trying to pass the array to the view page and put the items in a listbox/dropdown. Where am I going wrong in this code?

Model

public function get_suppliers(){
        $type = "SUPPLIER";
        $this->db->where('usertype', $type);
        $query = $this->db->get('users');
        foreach ($query->result() as $row){
            $results = array(
                'userid' => $row->userid,
                'firstname' => $row->firstname,
                'lastname' => $row->lastname,
                'company' => $row->company
            );

        }
        return $results;
    }

Controller

$this->load->model('user_model');
$data['supplier']= $this->user_model->get_suppliers();
$this->load->view('include/header.php');
$this->load->view('addvehicle_view', $data);
$this->load->view('include/footer.php');

View

<?php
  if(isset($supplier)){
      foreach ($supplier as $info){
      echo'<option value="' . $info->userid . '">' . $info->company . ' - ' . $info->lastname . ', ' . $info->firstname . '</option>';
    }
  }
  ?>
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dos71253 2013-05-02 23:46
    已采纳

    In get_suppliers():

    $results = array(); // just in case there is no record
    
    foreach (...) {
        $results[] = array( // you forgot the "[]"
            ...
        );
    }
    

    Another issue: your model (once fixed) returns an array of arrays, whereas your view expects an array of objects.

    Straight to the point, here's your new sexy model method:

    public function get_suppliers() {
        return $this->db
            ->where('usertype', 'SUPPLIER')
            ->get('users')
            ->result();
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dongluo6343 2013-05-03 04:43
    public function get_suppliers(){
        $type = "SUPPLIER";
        $this->db->where('usertype', $type);
        $query = $this->db->get('users');
        $results = array();
        foreach ($query->result() as $row){
            $results[] = array(
                    'userid' => $row->userid,
                    'firstname' => $row->firstname,
                    'lastname' => $row->lastname,
                    'company' => $row->company
            );
    
        }
        return $results;
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题