我想在CodeIgniter
中显示视图中的值,但是我遇到了一些错误,例如尝试在非对象上获取属性。我认为我的代码是正确的,但我收到了错误。以下是我的代码。
控制器:
public function trainer($id)
{
$user_record = $this->db->query("select * from usr_data where usr_id=$id")->result();
$data['title'] = 'trainer Dashboard';
$data['user_record'] = null;
$data['active_courses'] = [];
$data['inprogress'] = [];
if(count($user_record)) {
$user_record = $user_record[0];
$data['title'] = ucwords($user_record->firstname).' Dashboard';
$data['user_record'] = $user_record;
$active_courses = $this->base_model->getTrainercourseAll($id);
$data['active_courses'] = $active_courses;
$inprogress = $this->base_model->getstaffinprogress($id);
$data['inprogress'] = $inprogress;
}
$this->load->view('trainer-dashboard', $data);
}
模型:
public function getstaffinprogress($user_id) {
$result=$this->executeSelectQuery("select AVG(m.percentage) from object_data o, ut_lp_marks m where o.obj_id=m.obj_id and o.type='crs' and m.status=1 ");
return $result;
}
视图:
<h3>Avg inprogress:<?php echo "<span style='color:#ff00ff;font-family:verdana;'>".$inprogress->percentage."</span>";?></h3>
我想显示来自database.above代码的列百分比是在控制器,模型和视图中。我认为我的控制器代码是错误的。
任何人帮我摆脱这个错误。我想在CodeIgniter
中的视图中显示一个值,但是我遇到了一些错误,比如尝试在非对象上获取属性。我认为我的代码是正确的,但我收到了错误。以下是我的代码。
答案 0 :(得分:0)
public function getstaffinprogress($user_id) {
$result = array();
$query=$this->db->query("select AVG(m.percentage) from object_data o, ut_lp_marks m where o.obj_id=m.obj_id and o.type='crs' and m.status=1 ");
foreach($query->result() as $row){
$result = $row;
}
return $result;
}
在视图中打印之前,还要检查$inprogress->percentage
是否存在。
答案 1 :(得分:0)
在您的视图文件中尝试此操作
if(isset($inprogress)){
echo $inprogress->percentage;
}
然后你的代码看起来像这样,
<h3>Avg inprogress:<?php if(isset($inprogress)){ echo "<span style='color:#ff00ff;font-family:verdana;'>".$inprogress->percentage."</span>";}?></h3>
然后调用控制器功能。我认为进展不是第一次。
如果它不起作用,请尝试在控制器中使用var_dump($ inprogress)并检查值和类型。
在您的模型中尝试此代码。查询似乎也不正确
public function getstaffinprogress($user_id) {
$this->db->select_avg('ut_lp_marks.percentage');
$this->db->where('ut_lp_marks.obj_id', $user_id);
$this->db->where('object_data.type', 'crs');
$this->db->where('ut_lp_marks.status', 1);
$this->db->join('object_data', 'object_data.obj_id = ut_lp_marks.obj_id');
$query = $this->db->get('ut_lp_marks');
return $query->result_array();
}
我假设您的数据库是ut_lp_marks。然后var_dump数组和检查数据首先是正确的。然后访问数组元素。