Hãy thử điều kỳ diệu này, trong mô hình của bạn:
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));
}
Sử dụng như thế này:
Shop::insertIgnore(array('name' => 'myshop'));
Đây là một cách tuyệt vời để ngăn các vi phạm ràng buộc có thể xảy ra với firstOrCreate trong môi trường nhiều người dùng, nếu thuộc tính 'name' đó là một khóa duy nhất.