我不知道为什么这根本不起作用。我理解这可能是错误的原因。
这是情况。
以下是代码
public function userExist($data)
{
$string = "SELECT student_number FROM users WHERE student_number = :user";
$sth = $this->db->prepare($string);
$sth->execute(array(
':user' => $data['user']
));
return $sth->rowCount() == 0 ? true : false;
}
public function validate($data) {
$this->userExist($data);
}
我想要的是返回一个字符串,如果userExist
方法为false,则表示“用户存在”...但此代码不起作用:
if($sth->rowCount() == 0) {
return true;
} else {
return "User Already Exists";
}
这就是我如何在控制器中调用它们:
if ($this->model->validate($data) == true) {
$this->model->create($data);
header('Location: '.URL.'users');
} else {
echo $this->model->validate($data);
die();
}
您认为最佳解决方案是什么?
答案 0 :(得分:2)
首先,您需要返回validate:
的值public function validate($data) {
$this->userExist($data);
}
但这里还有其他一些问题。您无需在控制器中两次调用$ this-> model-> validate($ data)。你可以这样做:
$result = false;
$result = $this->model->validate($data);
if ( true === $result {
$this->model->create($data);
header('Location: '.URL.'users');
} else {
die($result);
}