从控制器传递变量到查看不工作的codeigniter

时间:2014-05-04 12:33:23

标签: php codeigniter

我一直在网上搜索这个问题,但我似乎无法找到一个好的答案。我正在使用codeigniter框架版本2.1.4。

我有型号:company.php和tbl_name:company

<?php
class Company extends CI_Model 
{
    public  function __construct()
    {
        $this->load->database();
    }


    public function getCompany(){

    $q = $this->db->get('company');

        if($q->num_rows() > 0)
        {
          foreach ($q->result() as $row)
          {
            $data[] = $row;
          }
          return $data;
        }
    }

}

我有控制器:home.php,我可以调用我创建的模型。

public function getAll(){
    $this->load->model('company');
    $data['results'] = $this->company->getCompany();
    $this->load->view('branch', $data);
}

最后我查看了:branch.php,我可以在这里查看来自DB的数据

<?php

if(!empty($results))
    {

      foreach($results as $res) 
      {
        echo "Name: ".$res->company;
      }
    } 
 ?>

现在这就是问题:当我浏览控制器localhost / app / home / getAll时,它工作正常,因为我可以看到数据库中的数据示例:名称:ABC公司,但是当我浏览视图localhost / app / home / branch我在下面收到此错误。

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: results

Filename: views/branch.php

Line Number: 11
1
你能帮帮我吗?感谢

4 个答案:

答案 0 :(得分:0)

使用:

if(isset($results)) 

而不是:

if(!empty($results))

在您看来,branch.php

答案 1 :(得分:0)

试试这个

$this->load->view('branch', array('data' => $data));

答案 2 :(得分:0)

与方法getall()类似,你应该在同一个控制器中有方法分支。

    public function getAll(){
        $this->load->model('company');
        $data['results'] = $this->company->getCompany();
        $this->load->view('branch', $data);
    } 

    public function branch(){
        $this->load->model('company');
        $data['results'] = $this->company->getCompany();
        $this->load->view('branch', $data);
   }

错误是因为您没有传递数据[&#39;结果&#39;]来查看。

答案 3 :(得分:0)

您可以尝试这种替代方式

将您的公司模式更改为:

public function getCompany(){

   $q = $this->db->get('company');

    return $q->result_array();
}

将您的观点更改为:

foreach($results as $res) 
  {
    echo "Name: ".$res['company'];
  }

OR

将您的公司模式更改为:

public function getCompany(){

   $q = $this->db->get('company');

    return $q->result();
}

将您的观点更改为:

foreach($results as $res) 
  {
    echo "Name: ".$res->company;
  }