所以我在我用来编辑内容的控制器中有这个方法:
public function edit($id){
$data;//some data that i gather
$this->load->view('admin/layouts/main',$data);
}
}
如果$id
为空,我可以重定向,并显示一条消息,如下所示:
public function edit($id){
if(empty($id)){
redirect('admin/articles');
//here some session variable to store message that i display later
}
$data;//some data that i gather
$this->load->view('admin/layouts/main',$data);
}
例如,如果我尝试访问我的方法:host.com/controller/method/id
,如果id
为空,则会重定向我。
但是我如何检查我传递的id
是否正确,并且我的数据库中有一篇真正的文章,其中有相应的id
并且可以编辑?
P.S。我使用CodeIgniter作为框架。
答案 0 :(得分:3)
你可以这样做,
public function edit($id = 0){
// setting $id zero if not passed
// check $id is integer and > 0
ctype_digit($id) or redirect('admin/articles');
// check record exists in your table
$result = $this->db->get_where('table', array('id' => $id));
// $result will be false if no record found
$result or redirect('admin/articles');
$data = array();
// if you need that in view
$data['id'] = $id;
$data['result'] = $result;
$this->load->view('admin/layouts/main',$data);
}
答案 1 :(得分:1)
对于id,您始终可以使用is_integer函数。对于这篇文章,你所能做的只是尝试通过它的id来获取文章,如果你没有找到任何重定向。
答案 2 :(得分:1)
验证id
的内容(即数字)后,您需要按id
查询数据库。如果查询未返回任何内容,则表示id
不在数据库中,您可以重定向到articles
页面。