为了账号安全,请及时绑定邮箱和手机立即绑定

如果模型中的查询在 Codeigniter 3 中返回空,则重定向到控制器

如果模型中的查询在 Codeigniter 3 中返回空,则重定向到控制器

PHP
森林海 2023-11-03 15:52:07
我想要做的是,如果我的模型中的查询返回空,则将用户重定向到另一个控制器。我有这样的控制器,在 $id 中传递 url 参数来获取特定用户public function get_user($id){  $data['user'] = $this->user_model->get_user_detail($id);  $this->load->view('customer_detail',$data);}还有我的模型:public function get_user_detail($id){  $query = $this->db->where('user_id', $id)->get('user');    return $query->row();}然后我将结果传递给我的视图,如下所示:<?php echo $user->name;?>效果很好。我的控制器的 url 类似于 mysite/user/get_user/7 ,“7”是 id。但是,如果我直接在 URL 栏中输入不存在的 id(如 mysite/user/get_user/99),则会抛出错误“尝试获取非对象的属性‘名称’”,因为数据库中没有 id 为 99 的用户。如果查询中没有找到数据,如何将用户重定向到另一个控制器?
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

一种简单的重定向方法。


$q =  $this->db->query()->row();

 If($q==""){

   redirect('url/page');

  }


查看完整回答
反对 回复 2023-11-03
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

我应该对控制器而不是模型中的控制器进行检查,并且不需要重定向。我正在检查模型并重定向。


public function get_user($id)

{

  $data['user'] = $this->user_model->get_user_detail($id);

  if (!empty($data['user'])) {

  $this->load->view('customer_detail',$data);

  } else {

  $this->load->view('404');

  }

}


查看完整回答
反对 回复 2023-11-03
?
DIEA

TA贡献1820条经验 获得超2个赞

public function get_user_detail($id)

{

  $query = $this->db->where('user_id', $id)->get('user');

    $query != "" ? redirect('actual-controller ($query)') : redirect('other-controller');

}

controller($query){ return $query->row(); //your view code for view here }


查看完整回答
反对 回复 2023-11-03
  • 3 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信