如何从模型中调用控制器中的变量?

时间:2013-11-25 11:43:33

标签: php codeigniter undefined

我的模型必须从包含公司信息的表中收集信息。 公司名称,地址等数据 所以我可以使用例如公司名称来设置页脚以将该名称放入发票中。

这是我的模特:

<?php

class Company extends CI_Model
{
public $name = '';
public $adress = '';

function __construct()
{
parent::__construct();
}

function get_info() {
    $query = $this->db->query('SELECT * FROM company');

    foreach ($query->result() as $row ) {
        $this->name = $row->name;
        $this->adress = $row->adress;
    }
}

}

我的控制器看起来像这样:

    public function test() {
    $this->load->model('Company');
    $this->Bedrijf->get_info();
    echo $this->bedrijf->name;

}

当我打开测试网站时出现错误:

  

未定义的属性:testproject :: $ name

我的代码出了什么问题?

4 个答案:

答案 0 :(得分:0)

尝试这样的事情

  function get_info() {
        $query = $this->db->query('SELECT * FROM company');

        foreach ($query->result() as $row ) {
            $data['name'] = $row->name;
            $data['adress'] = $row->adress;
        }
       return $data;
    }

我的控制器看起来像这样:

    public function test() {
    $this->load->model('company');
    $company_info = $this->company->get_info();
    echo $company_info['name'];

}

答案 1 :(得分:0)

因为你没有正确加载你的模型。了解如何在控制器中加载模型。 http://ellislab.com/codeigniter/user-guide/general/models.html#loading

试试这个。

public function test() {
    $this->load->model('Company', 'Bedrijf');
    $this->Bedrijf->get_info();
    echo $this->Bedrijf->name;

}


// You are not defining assigning the different object here 
// from that you are calling i.e. $this->Bedrijf->get_info();
$this->load->model('Company');
$this->Bedrijf->get_info();

答案 2 :(得分:0)

试试这个:

  public function test() {
        $obj_model = $this->load->model('Company');
        $Bedrijf->get_info();
        echo $Bedrijf->name;

    }

答案 3 :(得分:0)

尝试这样的事情

<强>模型

function get_info() {
    $query = $this->db->query('SELECT * FROM company');
    return $query->result();
}

<强>控制器

public function test() {
    $this->load->model('Company');
    $obj = $this->Company->get_info();
    echo $obj->name;
}