【问题标题】:Checking if record exists in Laravel not working检查 Laravel 中是否存在记录不起作用
【发布时间】:2021-06-28 01:32:23
【问题描述】:

我这样做是为了检查是否存在带有 chasis_number 的记录。如果它不存在插入数据,如果它不插入。但它不起作用。

        $chunks = $insert_data->chunk(500);
            
        $owner = Owner::where('chasis_number', '=', request()->get('chasis_number'))->first();
        foreach ($chunks as $chunk)
        {
        if ($owner === null) {
               Owner::insert($chunk->toArray());
          }
        }

【问题讨论】:

  • 检查dd($owner ) 你从中得到了什么,因为正如你的声明所说,如果所有者返回 null 然后插入数据,否则它可能不会返回 null 值所以在 else 块中放入一些东西到检查它像if ($owner === null) { Owner::insert($chunk->toArray()); }else{return " owner is existed";}

标签: php sql laravel eloquent


【解决方案1】:

您可以使用exists

,而不是使用第一种方法来确定是否存在任何符合查询约束的记录
$ownerExist = Owner::where('chasis_number', '=', request()->get('chasis_number'))->exists();

   if ($ownerExist== true) {
               Owner::insert($chunk->toArray());
          }

【讨论】:

  • 它根本不存储任何数据。也许它返回 null。
【解决方案2】:

firstOrCreate 方法将尝试使用给定的列/值对来定位数据库记录。如果在数据库中找不到模型,则将插入一条记录,其中包含将第一个数组参数与可选的第二个数组参数合并后的属性:

https://laravel.com/docs/8.x/eloquent#retrieving-or-creating-models

【讨论】:

  • firstOrCreate 方法是否适用于块?
猜你喜欢
  • 2015-01-21
  • 2021-08-08
  • 2020-01-14
  • 2018-06-01
  • 2011-02-20
相关资源
最近更新 更多