我正在创建一个项目,在该项目中,我要验证某个用户是否在表中插入了数据,如果有,请显示它。我对CodeIgniter还是相当陌生,并且不确定如何显示某个用户已登录的所有列表。
这是我到目前为止的模型中的内容:
public function get_all_lists($user_id){
$this->db->where('list_creator_id', $user_id);
$query = $this->db->get('lists');
return $query->result();
}
这是我的看法:
<li class="list-group-item">
<a href="<?php echo base_url();?>project_controllers/lists/create" class="btn btn-success pull-right">
Create a List
</a>
<h3 align="center">
<a href="<?php echo base_url();?>project_controllers/lists/display/<?php echo $list->id;?>">
<?php echo $list->list_name; ?>
</a>
</h3>
</li>
<?php endforeach; ?>
这就是我的控制器上的内容:
public function index(){
$user_id = $this->session->userdata('user_id');
$this->load->model('project_models/lists_model');
$data['lists'] = $this->lists_model->get_all_lists($user_id);
$data['main_view'] = "project_views/lists/index";
$this->load->view('project_views/layouts/main', $data);
}
我的目标是在显示某个用户登录后创建的所有列表。如果该用户已经登录并且未创建任何列表,我希望显示一条消息, “您尚未创建任何列表”。。
答案 0 :(得分:1)
使用num_rows()
返回对象或false。
public function get_all_lists($user_id){
$this->db->where('list_creator_id', $user_id);
$query = $this->db->get('lists');
if ($query->num_rows() > 0) {
return $query->result();
}
return false;
}
用法:
if ($lists) {
foreach(...) {
}
} else {
echo 'no rows';
}