简体   繁体   English

laravel firstOrNew在使用mutator作为日期时不起作用

[英]laravel firstOrNew doesn't work when using mutator for date

I'm trying to prevent importing duplicate records from csv file, everything is fine when checking for all items, but when I want to check for duplicate date, it doesn't work because in the model I'm using mutator function to change date format. 我试图防止从csv文件导入重复记录,检查所有项目时一切都很好,但是当我想检查重复日期时,它就不起作用了,因为在模型中,我使用的是mutator函数来更改日期格式。

public function setPostingdateAttribute($date) {
    $this->attributes['postingdate'] = Carbon::createFromFormat('n/j/Y', $date)->format('Y/m/d');
}

in function for implementing importing csv file 在实现导入csv文件的功能中

$data = array_combine($escapedHeader, $columns);
$details = $data['details'];
$postingdate = $data['postingdate'];
$slip = $data['checkorslip'];
$addchecks = Checks::firstOrNew(['postingdate'=>$postingdate]);
$addchecks->details = $details;
$addchecks->slip = $slip;
$addchecks->save();

是的,这是已知问题,据我所记得,我过去曾经创建过Pull请求,可以解决该问题,但该请求被拒绝(或在Laravel github上提出),因此如果您使用firstOrNewfirstOrCreate可能会让您感到意外结果。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM