我在Excel包中使用Laravel 8。我有一个来自csv导入的数组,如:
数组( "Mr“、"Tom”、"Staff“、"and”、“Mr”、"John“、"Doe")
在下面的模型函数中,我很难在不重复代码的情况下为这两条记录添加2条单独的记录。在上面的代码中,我所做的就是将csv数据排序到正确的字段中,如title、firstName等。所有这些数据都被排序到一个名为name的数组中,该数组位于对象房屋所有者中,因此:
先生
先生
公共函数模型(数组$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’,];}
发布于 2022-06-18 11:30:03
在Laravel Excel中导入到模型,是关于将一行映射到模型,如果使用导入来建模的话。
相反,您可以导入到集合并创建逻辑。
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大小写。
https://stackoverflow.com/questions/72667512
复制相似问题