注意消息:数组到字符串转换

时间:2015-04-16 12:06:56

标签: php codeigniter

我是codeigniter和php的首发,我正面临这个问题

  

遇到PHP错误

     

严重性:注意

     

消息:未定义的变量:查询

     

文件名:inc / header_main_view.php

     

行号:175

     

遇到PHP错误

查看:

<ul class="dropdown-menu">

    <li>
        <!-- inner menu: contains the actual data -->
        <ul class="menu">
            <?php foreach($query as $row) :?>
                <li><!-- Task item -->
                    <a href="#">
                        <h3>
                            <?php echo $row->id_task; ?><?php echo $row->name; ?>
                            <small class="pull-right">20%</small>
                        </h3>
                        <div class="progress xs">
                            <div class="progress-bar progress-bar-aqua" style="width: 20%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                                <span class="sr-only">20% Complete</span>
                            </div>
                        </div>
                    </a>
                </li><!-- end task item -->
            <?php endforeach; ?>
        </ul>
    </li>
    <li class="footer">
        <a href="<?=base_url()?>index.php/dashboard/g_tasks_menu">View all tasks</a>
    </li>
</ul>

CONTROLLER

public function get_todo($id = null)
    {
        $this->_require_login();
        $this->load->model('todo_model');
        if ($id != null) {
            $result = $this->todo_model->get([
                'id' => $id,
                'id_user' => $this->session->userdata('id_user')
            ]);
        } else {
            $result = $this->todo_model->get([
                'id_user' => $this->session->userdata('id_user')
            ]);
        }

        return $result;
    }

其他控制器

 public function index()
    {
        require('api.php');
        $api = new api();
        $query = $api->get_todo();

        $this->load->view('dashboard/inc/header_main_view', $query);
        $this->load->view('dashboard/admin_pages/dashboard_view');
        $this->load->view('dashboard/inc/footer_main_view');

    }

MODEL

 public function get($id = null, $order_by = null)
    {       
        if (is_numeric($id)) {
            $this->db->where($this->_primary_key, $id);
        } 

        if (is_array($id)) {
            foreach ($id as $_key => $_value) {
                $this->db->where($_key, $_value);
            }
        }

        $q = $this->db->get($this->_table);
        return $q->result_array();
    }

有人可以告诉我为什么我会收到错误。

2 个答案:

答案 0 :(得分:4)

就像这样

$data['query'] = $api->get_todo();
$this->load->view('dashboard/inc/header_main_view', $data);

答案 1 :(得分:2)

你没有传递变量来正确查看。$query在你的视图中不可用.CI将数组或对象键转换为从控制器发送的变量。参见Adding Dynamic Data to the View来自doc。< / p>

你需要像这样修理你的控制器

$data['query'] = $api->get_todo();
$this->load->view('dashboard/inc/header_main_view', $data);    
//your view will get all key of $data as variable.
//your view will get $query from above code