如何测试是否设置了从Eloquent查询返回的对象?

时间:2014-04-28 09:56:23

标签: php arrays laravel eloquent

我正在测试用户是否已在数据库中有记录(d)。

我的查询:

$userResults = Results::where('d','=',Input::get('d'))
                      ->where('user','=',Input::get('user'),'AND')->get();

var_dump返回

object(Illuminate\Database\Eloquent\Collection)#333 (1) { ["items":protected]=> array(0) { } }

为空时或结果数组(如果有)。

如何测试isset的对象?

4 个答案:

答案 0 :(得分:8)

您只需使用count检查结果:

// Illuminate\Database\Eloquent\Collection implements Countable interface
if (count($userResults) === 0) {
  // empty result
}

或只使用 isEmpty 方法:

if ($userResults->isEmpty()) {
  // empty result
}

答案 1 :(得分:2)

使用Collection方法:

$userResults->isEmpty(); // true / false

或者计数,因为Collection实现了Countable接口

count($userResults); // 0 if empty

if (empty($userResults)) { // do the job }

答案 2 :(得分:0)

if(isset($userResults)){
   //you criteria
}

OR

if(empty($userResults)){
       //you criteria
    }

答案 3 :(得分:0)

   if($userResults->count()){
     //your code
    }