我有一个将数组传递给视图的控制器。遗憾的是,视图中没有其中一个字段$data['c']
。它只有一个变量。
function view() {
$this->load->model('rateteacher_m');
$rate_id= $this->uri->segment(4);
$data['rows'] = $this->rateteacher_m->get_by_id($rate_id);
$data['answers'] = $this->rateteacher_m->get_answer_by_question_id($rate_id);
$data['c'] = $this->rateteacher_m->check_follow($rate_id,1) ;
$this->load->view('specific_rateteacher_v', $data);
}
和我的模特......
function check_follow($rate_id,$user_id) {
$count=mysql_num_rows($user_sql);
$this->db->select('teacher_id, user_id');
$this->db->from('teacher_follow');
$q = $this->db->get();
$result= $this->db->count_all_results();
$data['aa']=$result;
return $data;
}
然后我尝试打印所有内容视图:
<?php foreach($c as $r) : ?>
<?php echo $r->aa; ?>
<?php endforeach; ?>
我想在视图中打印计数但是没有完成。我不确定我做错了什么。
答案 0 :(得分:0)
check_follow()方法返回一个包含一个项目的数组。 $this->db->count_all_results();
返回一个整数。因此,如果它返回1,则该方法返回array('aa' => 1)
而不返回任何其他内容。
然后在您的视图中,您尝试回显对象,但它已设置为数组,因此请改为使用$c['aa']
或$r->aa
。
答案 1 :(得分:0)
这是一个不同的角度。如果您的数据库结果可能是一个或多个,则可以执行此操作。
$query = $this->db->get( 'something' );
// its 1, so return the row()
if ( $query->num_rows() == 1 ) {
return $query->row(); }
// its more then 1, return result()
elseif( $query->num_rows() > 1 ) {
return $query->result(); }
// no results, return false
else { return false ; }
将始终将db结果作为对象返回(不需要在视图中显示括号)