Wypróbuj tę magię w swoim modelu:
public static function insertIgnore($array){
$a = new static();
if($a->timestamps){
$now = \Carbon\Carbon::now();
$array['created_at'] = $now;
$array['updated_at'] = $now;
}
DB::insert('INSERT IGNORE INTO '.$a->table.' ('.implode(',',array_keys($array)).
') values (?'.str_repeat(',?',count($array) - 1).')',array_values($array));
}
Użyj w ten sposób:
Shop::insertIgnore(array('name' => 'myshop'));
Jest to świetny sposób na zapobieganie naruszeniom ograniczeń, które mogą wystąpić podczas korzystania z funkcji firstOrCreate w środowisku wielu użytkowników, jeśli właściwość „name” byłaby unikalnym kluczem.