检查 Laravel 中是不是存在记录不起作用

Posted

技术标签:

【中文标题】检查 Laravel 中是不是存在记录不起作用【英文标题】: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()); elsereturn " owner is existed"; 【参考方案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 方法是否适用于块?

以上是关于检查 Laravel 中是不是存在记录不起作用的主要内容,如果未能解决你的问题,请参考以下文章

检查 localStorage 项目是不是存在不起作用

使用 DFS 检查二叉树中是不是存在路径不起作用

检查数组中是不是存在迭代器时,array.includes 不起作用[重复]

MYSQL:检查表是不是存在不起作用

在使用 Laravel 进行验证期间检查输入中是不是存在字段

检查 .txt 文件是不是存在。 FileWriter.exists 方法不起作用