我几乎没有if语句返回true或false,并且每个语句都无法正常工作。我已经尝试了很多方法,但不知道这个问题。如果有人解决这个问题,那将非常有用。
这是我的模型代码
function exists($email){
$this->db->where('email',$email);
$query=$this->db->get('member_info');
echo "model is called"; // after execution this text is shown but not the others
if ($query->num_rows == 1) {
return true;
echo "i got one";
}else{
return false;
echo "i got nothing";
}
}
这是我的控制器
function is_exists($email){
echo "this is loaded"; //this line works properly
if($this->validation_model->exists($email)){
return false;
echo "true"; //this doesn't
}else{
return true;
echo "false"; // this doesn't
}
}
答案 0 :(得分:3)
在打印回声部分之前,您将返回该功能。你应该在回归之前回应。
同时更改该行以检查多个
if($ query-> num_rows()> 0){
试试这个方法。相应地替换表名,id值。
$query = $this->db->query("select id form your_table where email=".$email);
if ($query->num_rows() > 0 ){
echo "i got one";
return true;
}
else{
echo "i got nothing";
return false;
}
还要查看您的控制器逻辑,当存在电子邮件时它返回false。最好更改控制器的真正错误返回。
答案 1 :(得分:1)
尝试
if($this->validation_model->exists($email)){
echo "true";
return false;
}else{
echo "false";
return true;
}
在return
之前放置回声,它应该像
$query->num_rows()
答案 2 :(得分:1)
由于您使用的是return
,因此return
之后的代码将无法执行
return false;
echo "true"; // this doesn't because you have return before this line
return true;
echo "false"; // this doesn't because you have return before this line
答案 3 :(得分:0)
改变这个:
if ($query->num_rows == 1) {
到此:
if ($query->num_rows() == 1) {
并更改以下内容:
if ($query->num_rows() > 0 ){
echo "i got one";
return true;
}
else{
echo "i got nothing";
return false;
}
答案 4 :(得分:0)
更改此行:
if ($query->num_rows() == 1) {
答案 5 :(得分:0)
//num_rows() is a function
<?php
function exists($email){
$this->db->where('email',$email);
$query=$this->db->get('member_info');
echo "model is called"; // after execution this text is shown but not the others
//num_rows() is a function
if ($query->num_rows() == 1) {
//add message before return statement
echo "i got one";
return true;
}else{
echo "i got nothing";
return false;
}
}
答案 6 :(得分:0)
你的模特应该是:
if ($query->num_rows == 1) {
return true;
}else{
return false;
}
无需打印额外的回声。与您的控制器相同的故事
if($this->validation_model->exists($email)){
return false;
}else{
return true;
}
据我所知,你不能在return语句之后执行任何代码(在函数返回中)。
我的解决方案是:
控制器中的就像这样
if($this->validation_model->exists($email)){
echo "EMAIL EXIST";
}else{
echo "EMAIL DOES NOT EXIST";
}