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

How to check if collection contains a value in Laravel

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

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

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

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

->get()总是return一个集合,你只需要验证它是否包含元素即可。

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

使用 if ($users->count())if (count($users)) 之类的东西。

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

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

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

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

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