Задача вставки строки уникального идентификатора в laravel - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь вставить некоторые данные 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']]);

Мой код работает.Но это только вставка первых двух элементов.Остальные нулевые в базе данных. Я использую postgresql в качестве базы данных.

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Первый Это проблема концепции массового назначения в Laravel. Вы должны указать все поля таблицы в массиве $ fillable вашей модели (tuhanorder).

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

Во-вторых, я заметил, что вы просто проверяете условие, но если условие совпадает, вы должны вставить данные примерно так:

'money2'=>(!empty($answers[$i]['int17']) ? $answers[$i]['int17'] : "");
0 голосов
/ 06 марта 2019

Я исправил проблему.Вот мой код

$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']
                         ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...