2017-12-20 3 views
0

csvファイルから重複レコードをインポートできないようにしようとしていますが、すべての項目をチェックすると問題はありませんが、私はミューテータ関数を使用して日付形式を変更しているため、モデルでは動作します。インポートするcsvファイルlaravel firstOrNewが日付のミューテータを使用しているときに機能しない

$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(); 
を実装するための機能で

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

答えて

0

はい、これは私が、私はそれを修正する過去のプルリクエストを作成しましたが、それは拒否された覚えている限り、問題を知っています(またはLaravel githubでこれを発生させます)。firstOrNewまたはfirstOrCreateを使用しているミューテータを使用すると、予期しない結果が生じる可能性があります。

+0

この問題を解決するにはどうすればよいですか? – Msaas

+0

私はそれを見つけました!ディスカッションをhttps://github.com/laravel/framework/issues/14649でご覧ください。動作しない場合は、レコードがすでに存在するかどうかをデータベースで手動で確認し、それがない場合にのみ挿入する必要があります –

+0

はっきりしない – Msaas

関連する問題