数组是空的,但它一直在思考里面的东西

时间:2015-04-16 12:56:13

标签: php arrays laravel-5

$result = usr::where("username", $username)->where("password", sha1($password))->get();

    echo $result;


    if(!empty($result)){
        echo " -WORKED :D";
    }else{ echo "FAILED D:"; }

结果总是'[] - 工作:D',数据库没有重新执行任何操作,数组显然是空的,为什么它认为数组内部存在某些内容?

编辑:

好的,所以我找到了一个相对较快的修复,我不确定为什么会这样,但empty()没有。

我刚刚使用if(count($results) < 1){并且工作正常,任何人都可以解释为什么它不能处理empty()条件吗?

2 个答案:

答案 0 :(得分:6)

因为它不是空的,所以你得到一个没有数据填充的集合 由于集合是自定义对象,因此PHP不知道它可以为空。

您需要Laravel框架中的isEmpty方法。

代码行将是:

if(!$result->isEmpty())

答案 1 :(得分:1)

get()返回一个Laravel Collection(Illuminate\Database\Eloquent\Collection),而不是数组。您可以使用$result->isEmpty()$result->count() > 0检查其是否为空。

您还可以使用$result->toArray()将集合转换为普通的php数组。