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()
进行调试并找出实际输出的内容。我已经编辑了问题并添加了模型部分。