【发布时间】:2015-06-22 21:34:16
【问题描述】:
$result = usr::where("username", $username)->where("password", sha1($password))->get();
echo $result;
if(!empty($result)){
echo " -WORKED :D";
}else{ echo "FAILED D:"; }
结果总是 '[] - WORKED :D' ,数据库没有返回任何东西,而且数组显然是空的,为什么它认为数组里面有东西?
编辑:
好的,所以我找到了一个相对较快的修复程序,我不确定为什么会这样,但empty() 不行。
我刚刚使用了if(count($results) < 1){,它运行良好,谁能解释为什么它不适用于empty() 条件?
【问题讨论】:
-
检查计数而不是检查空,即count($result) > 0 类似的东西
-
var_dump($result);显示什么? -
因为 $result 很可能是一个对象(Collection 类型?),而不管找到的记录如何
-
var_dump ($result) 吐出 Eloquent 的全部内容,所以我不会用 40 英尺长的杆子碰它
-
The documentation for
empty()非常清楚它认为哪些值为空。长度为 0 的 Eloquent Collection 不是其中之一。