首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中从单个数组向数据库添加2条记录?

如何在PHP中从单个数组向数据库添加2条记录?
EN

Stack Overflow用户
提问于 2022-06-18 07:31:52
回答 1查看 76关注 0票数 1

我在Excel包中使用Laravel 8。我有一个来自csv导入的数组,如:

数组( "Mr“、"Tom”、"Staff“、"and”、“Mr”、"John“、"Doe")

在下面的模型函数中,我很难在不重复代码的情况下为这两条记录添加2条单独的记录。在上面的代码中,我所做的就是将csv数据排序到正确的字段中,如title、firstName等。所有这些数据都被排序到一个名为name的数组中,该数组位于对象房屋所有者中,因此:

  • title =

先生

  • firstName = Tom

  • lastName = Staff

  • title2 =

先生

  • firstName2 = John

  • lastName2 = Doe

公共函数模型(数组$row) { if ($row) == 3) { $homeowner =新ThreeWordName($row);} $homeowner (计数($row) == 7) {$homeowner=新SevenWordName($row);} $sorter =新CsvNameSorter;$sorter->sort($homeowner);返回新的temp_csv_data(‘=> $房屋所有者->名称'title’,'firstName‘=> $房屋所有者->名称'firstName’,'lastName‘=> $房屋所有者->名称'lastName’,‘=>’=> $房屋所有者->名‘title 2’,‘firstName’=> $房屋所有者-->名‘firstName Name2’,‘lastName’=>$房屋所有者-->名称‘lastName2’,];}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-18 11:30:03

Laravel Excel中导入到模型,是关于将一行映射到模型,如果使用导入来建模的话。

相反,您可以导入到集合并创建逻辑。

代码语言:javascript
复制
public function collection(Collection $rows)
{
    foreach($rows as $row) {
        if (count($row) == 3) {
            $homeowner = new ThreeWordName($row);
        }elseif (count($row) == 7) {
            $homeowner = new SevenWordName($row);
        }

        $sorter = new CsvNameSorter;
        $sorter->sort($homeowner);

        TempCsvData::create([
            'title' => $homeowner->name['title'],
            'firstName' => $homeowner->name['firstName'],
            'lastName' => $homeowner->name['lastName'],
        ]);

        TempCsvData::create([
            'title' => $homeowner->name['title2'],
            'firstName' => $homeowner->name['firstName2'],
            'lastName' => $homeowner->name['lastName2'],
        ]);
    }
}

请注意,类命名是pascal大小写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72667512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档