【问题标题】:Laravel Eloquent: Detect is empty or countLaravel Eloquent:检测为空或计数
【发布时间】:2019-01-15 14:33:06
【问题描述】:

主要问题是如何检测一个 eloquent 集合结果是否为空,laravel 建议如何识别这一点?

我对此有两个不同的问题,也许它们彼此相关或不相关,

第一个:

我怎样才能得到$result = $user->delete() OR $result = $user->save(); 方法的结果?

我的意思是检查操作是否完成

为此使用if($result){...} 是否正确或足够?

第二个:

获取$result =User::where(conditions)->get()是否为空的正确方法是什么?

请告诉我涵盖所有情况的正确方法,

【问题讨论】:

  • 首先,请始终查阅 API 文档或 PHPDoc 块。它应该说明期望的返回类型/值。

标签: laravel object collections eloquent laravel-5.6


【解决方案1】:

#1

if($user->delete())
  return true;
    else
  return false;

if($user->save()){
  return true;
}

#2

要确定是否有任何结果,您可以执行以下任一操作:

if (!$user->isEmpty()) { }
if ($user->count()) { }
if (count($user)) { }

注释/参考文献

http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_first http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_isEmpty http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_count http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_count

【讨论】:

    【解决方案2】:

    删除和保存是同步的,所以除非抛出异常,否则可以安全地完成。

    对于第二个问题,你可以这样做:

    User::where(conditions)->count();
    

    还有isEmptyisNotEmpty 用于收藏。

    另一种方式是使用exists/doesntExist:

    User::where(conditions)->exists(); // or doesntExist()
    

    【讨论】:

      【解决方案3】:

      第一

      $user->delete()$user->save() 都返回 true 或 false。所以你可以这样做。

      if($user->save())
          return true;
      else
          return false;
      

      第二

      根据你的说法。

      $result = User::where(conditions)->get();    
      if(count($result)
           return true;
      else
           return false;
      

      【讨论】:

        【解决方案4】:

        1) 是的,没关系。或者你可以使用

        if($user->delete()) {
          return true;
        } else {
          return false;
        }
        

        2) 你可以使用函数empty()

        $result = User::where(conditions)->get()
        if (!empty($result)) { 
         // if it is not empty, do the following...
        }
        

        【讨论】:

          猜你喜欢
          • 2014-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-27
          • 2013-12-09
          • 2017-06-14
          • 2017-04-22
          • 2018-08-15
          • 1970-01-01
          相关资源
          最近更新 更多