Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从模型访问控制器内的数据数组_Php_Codeigniter - Fatal编程技术网

Php 从模型访问控制器内的数据数组

Php 从模型访问控制器内的数据数组,php,codeigniter,Php,Codeigniter,我想使用$data['main']并从中获取特定的行或数据,即:extra\u id 我会使用另一个函数的extra\u id 我尝试从$data['main']访问数据,就像我在另一个页面的视图中所做的那样:$extra\u id=$main->result()->extra\u id 不幸的是,它没有起作用 控制器: public function viewData($id) { $this->load->model('myModel'); $d

我想使用
$data['main']
并从中获取特定的行或数据,即:
extra\u id

我会使用另一个函数的
extra\u id

我尝试从
$data['main']
访问数据,就像我在另一个页面的视图中所做的那样:
$extra\u id=$main->result()->extra\u id

不幸的是,它没有起作用

控制器:

public function viewData($id)
    {   

    $this->load->model('myModel');

    $data['main'] = $this->MyModel->getMainData($id);

    $extra_id = $main->result()->extra_id; //error here. undefined variable main.

    $data['extra'] = $this->MyModel->getExtraData($extra_id);



    $this->load->view('view',$data);
}
型号:

public function getMainData($id) {
        $this->db->select('main.id as extra_id');
        $this->db->select('main.*');
        $this->db->select('extra.*');

        $this->db->from('main');

        $this->db->join('extra', 'extra.main_id = main.id');

        $query = $this->db->get();  
        return $query;
}

您先初始化
$data['main']
,然后使用
$main
…这样不起作用。试试这个:

$extra_id = $data['main']->result()->extra_id;

我猜是你从哪个地方复制了那一段代码,你在那个方法中将它赋给了一个名为
$main
的变量。

你是这样尝试的吗

在codeiginer中,
result()
提取对象窗体上的多行,函数
row()
用于仅获取对象窗体中的第一行

控制器:

public function viewData($id)
    {   

    $this->load->model('myModel');

    $data['main'] = $this->MyModel->getMainData($id);

    $extra_id = $data['main']->extra_id; //error here. undefined variable main.

    $data['extra'] = $this->MyModel->getExtraData($extra_id);


    $this->load->view('view',$data);
}
型号:

public function getMainData($id) {
        $this->db->select('main.id as extra_id');
        $this->db->select('main.*');
        $this->db->select('extra.*');

        $this->db->from('main');

        $this->db->join('extra', 'extra.main_id = main.id');

        $query = $this->db->get()->row();  
        return $query;
}
使用此代码

$extra_id = $data['main']->result()[0]->extra_id;
并在模型中的where子句中使用$id

 $this->db->where("id",$id);

最好做
$data['main']->result()->extra\u id@justonUnderMillenOK。我试过了。它产生了另一个错误,即
尝试获取非对象的属性
。如果有多个结果,则错误是正确的
var\u dump()
并查看您得到的结果。也请阅读此处并使用示例中所示的
result\u array()
请学习如何访问任何类型的$variables
数组、对象,
。看起来一切都很好,但你现在不知道如何访问你能看到的东西。但这是PHP语法的基础,您必须学习。我试过了。它产生了另一个错误,
试图获取非对象的属性
,然后您的
$this->MyModel->getMainData($id)未正确返回它。使用
var_dump()
进行调试并找出实际输出的内容。我已经编辑了问题并添加了模型部分。