[英]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.