Laravel中唯一ID行的插入问题

时间:2019-03-06 03:42:34

标签: php database postgresql csv laravel-5

我正在尝试将一些csv数据插入名为tuhanorder的表中。我只想插入先前未插入orderbango的那些行。这是我的代码

$orderhenkan=tuhanorder::firstOrCreate(['orderbango' => $orderbango],
                         ['juchukubun2'=> 'ヤマト運輸'],
                         ['soufusakibango'=> $syukkosakibango],
                         ['chumonsyabango'=>(!empty($thanerjonno))],
                         ['money2'=>(!empty($answers[$i]['int17']))],
                         ['money3'=>(!empty($answers[$i]['int18']))],
                         ['money5'=>(!empty($answers[$i]['int19']))],
                         ['money4'=>(!empty($answers[$i]['int31']))],
                         ['moneymax'=>(!empty($answers[$i]['int30']))],
                         ['otodokedate'=>(!empty($answers[$i]['int22']))],
                         ['youbou'=> $answers[$i]['int20']],
                         ['chumonsyajouhou'=> $answers[$i]['int21']],
                         ['otodoketime'=> $answers[$i]['int23']],
                         ['information4'=> $answers[$i]['int24']],
                         ['kessaihouhou'=> $answers[$i]['int25']],
                         ['juchubango'=> $answers[$i]['int0']],
                         ['chumondate'=> $answers[$i]['int1']],
                         ['information5'=>$answers[$i]['int2']],
                         ['juchukubun1'=> $answers[$i]['int10']]);

我的代码正在运行。但这只是插入前两个元素。其余在数据库中为null。我正在使用PostgreSQL作为数据库。

2 个答案:

答案 0 :(得分:1)

首先是Laravel中的大规模分配概念问题。 您必须将所有表字段指定为模型的$ fillable数组(tuhanorder)。

https://laravel.com/docs/5.8/eloquent#mass-assignment

第二步,我注意到您只是在检查条件,但是如果条件匹配,则必须插入类似以下的数据:

'money2'=>(!empty($answers[$i]['int17']) ? $answers[$i]['int17'] : "");

答案 1 :(得分:0)

我已解决问题。这是我的代码

$tuhanorder=tuhanorder::firstOrCreate(['orderbango' => $orderbango],
                         ['juchukubun2'=> 'ヤマト運輸',
                           'soufusakibango'=> $syukkosakibango,
                           'chumonsyabango'=>(!empty($thanerjonno) ? $thanerjonno : null ),
                           'money2'=>(!empty($answers[$i]['int17']) ? $answers[$i]['int17'] : null ),
                           'money3'=>(!empty($answers[$i]['int19']) ? $answers[$i]['int19'] : null ),
                           'money5'=>(!empty($answers[$i]['int18']) ? $answers[$i]['int18'] : null ),
                           'money4'=>(!empty($answers[$i]['int31']) ? $answers[$i]['int31'] : null ),
                           'moneymax'=>(!empty($answers[$i]['int30']) ? $answers[$i]['int30'] : null ),
                           'otodokedate'=>(!empty($answers[$i]['int22']) ? $answers[$i]['int22'] : null ),
                           'youbou'=> $answers[$i]['int20'],
                           'chumonsyajouhou'=> $answers[$i]['int21'],
                           'otodoketime'=> $answers[$i]['int23'],
                           'information4'=> $answers[$i]['int24'],
                           'kessaihouhou'=> $answers[$i]['int25'],
                           'juchubango'=> $answers[$i]['int0'],
                           'chumondate'=> $answers[$i]['int1'],
                           'information5'=>$answers[$i]['int2'],
                           'juchukubun1'=> $answers[$i]['int10']
                         ]);