我想使用$data['main']
并从中获取特定的行或数据:extra_id
我会将extra_id
用于其他功能。
我尝试访问$data['main']
中的数据,就像我在另一页的视图中所做的那样:$extra_id = $main->result()->extra_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;
}
答案 0 :(得分:1)
您初始化$data['main']
然后使用$main
....它不会那样工作。试试这个:
$extra_id = $data['main']->result()->extra_id;
我的猜测是你复制了那段代码的地方,你把它分配给那个方法中名为$main
的变量。
答案 1 :(得分:0)
你有没有试过这个......
在codeiginter中,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;
}
答案 2 :(得分:0)
使用此代码。
$extra_id = $data['main']->result()[0]->extra_id;
并在模型中的where子句中使用$ id。
$this->db->where("id",$id);