如何检查集合是否包含Laravel中的值

时间:2016-10-13 16:01:29

标签: php laravel laravel-5 laravel-5.3 laravel-collection

我无法检查以下集合是否包含数据

$users = \App\Tempuser::where('mobile','=',$request->mobile)->get();

if(isset($users))
  return "ok";
else
  return "failed";

但如果$users中没有任何内容,我仍然没有得到其他部分。

4 个答案:

答案 0 :(得分:4)

要检查集合是否为空,您可以使用isEmpty方法:

if( $users->isEmpty() )
  return "collection is empty";
else
  return "collection is not empty";

答案 1 :(得分:3)

->get()将始终返回一个集合,您只需要验证它是否包含元素。

if ($users->count())
    return "ok";
else
    return "failed";

答案 2 :(得分:2)

使用类似if ($users->count())if (count($users))的内容。

答案 3 :(得分:0)

您可以创建一个宏并将其放入AppServiceProvider

Collection::macro('assertContains', function($value) {
    Assert::assertTrue(
         $this->contains($value)
    );
});

Collection::macro('assertNotContains', function($value) {
    Assert::assertFalse(
        $this->contains($value)
    );
});