【发布时间】:2021-08-10 08:44:56
【问题描述】:
我正在使用Maatwebsite/Excel 导入文件并将数据存储在数据库中。
我想检查registered 列是否在文件中,否则为它创建一个新值。我在下面尝试了我的代码,但是当我检查我的数据库时,我看到created_at (timestamp) 列的日期是今天的日期,而不是 csv 文件列上的日期。
是因为迁移导致行没有更新吗?
因为我在User 迁移中有$table->timestamps();。
class UsersImport implements ToModel, WithCustomCsvSettings, WithHeadingRow, WithUpserts
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
return new User([
'firstname' => $row['firstname'],
'lastname' => $row['lastname'],
'email' => $row['email'],
'password' => $row['pass'],
'created_at' => !empty($row['registered']) ? Carbon::parse($row['registered']) : Carbon::now(),
]);
}
public function getCsvSettings(): array
{
return [
'delimiter' => ","
];
}
public function uniqueBy()
{
return 'email';
}
}
【问题讨论】:
-
你有什么错误吗?
-
@Pradeep 错误是当我检查我的数据库时,我看到
created_at(时间戳)列的日期是今天的日期,而不是 csv 文件列上的日期。