簡體   English   中英

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

[英]Redirect to controller if query in model return empty in Codeigniter 3

如果我的模型中的查詢返回空,我想要做的是將用戶重定向到另一個控制器。

我有這樣的控制器,在 $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。 但是如果我直接在像 mysite/user/get_user/99 這樣的 url 欄中輸入不存在的 id,它會拋出錯誤“試圖獲取非對象的屬性 'name'”,因為數據庫中沒有 id 為 99 的用戶。 如果沒有從查詢中找到數據,如何將用戶重定向到另一個控制器?

謝謝

一種簡單的重定向方法。

$q =  $this->db->query()->row();
 If($q==""){
   redirect('url/page');
  }
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 }

感謝@Vickel 指出。 我應該檢查不在模型中的控制器並且不需要重定向。 我正在檢查模型並重定向。

 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'); } }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM