在发现第3个URL段可以直接传递给函数的参数后,我做了以下几点。
网址示例:
profile
控制器中的功能:
function user($user_id) //$user_id is 3rd URL segment
{
//get data for user with id = $user_id
}
使用$this->uri->segment(3)
返回FALSE不存在任何段。使用函数参数我得到
缺少参数1
如果缺少第3个URL段,如何返回FALSE并且不执行该功能?如果可能的话,我正在寻找一个没有if语句的简单解决方案。
答案 0 :(得分:4)
你得到“缺少参数1”,因为函数没有得到参数。
尝试
function user(){
if($this->uri->segment(3)){
//get data for user with id = $this->uri->segment(3)
}
}
答案 1 :(得分:3)
默认参数怎么样:
function user($user_id = FALSE) //$user_id is 3rd URL segment
{
//get data for user with id = $user_id
}
答案 2 :(得分:2)
你也可以使用它:
public function user($id = null)
{
if(!isset($id))
exit();
// get data for user with id = $id
}
或者
public function user()
{
if( ! $this->uri->segment(3) )
exit();
// get data for user with id = $id
}
答案 3 :(得分:0)
if ($this->uri->segment(3)) {
return true
} else {
return false
}