Eloquent中一些其余的create方法

firstOrCreatefirstOrNew#

还有两种其它方法,你能够用来经过属性批量赋值建立你的模型:firstOrCreate 和firstOrNewfirstOrCreate 方法将会使用指定的字段/值对,来尝试寻找数据库中的记录。若是在数据库中找不到模型,则会使用指定的属性来添加一条记录。php

firstOrNew 方法相似 firstOrCreate 方法,它会尝试使用指定的属性在数据库中寻找符合的纪录。若是模型未被找到,将会返回一个新的模型实例。请注意 firstOrnew 返回的模型还还没有保存到数据库。你须要经过手动调用save 方法来保存它:laravel

// 经过name属性检索航班,当结果不存在时建立它... $flight = App\Flight::firstOrCreate(['name' => 'Flight 10']);  // 经过name属性检索航班,当结果不存在的时候用name属性和delayed属性去建立它 $flight = App\Flight::firstOrCreate( ['name' => 'Flight 10'], ['delayed' => 1] );  // 经过name属性检索航班,当结果不存在时实例化一个新实例... $flight = App\Flight::firstOrNew(['name' => 'Flight 10']);  // 经过name属性检索航班,当结果不存在的时候用name属性和delayed属性去实例化一个新实例 $flight = App\Flight::firstOrNew( ['name' => 'Flight 10'], ['delayed' => 1] );

updateOrCreate#

其次,你可能会碰到模型已经存在则更新,不然建立新模型的情形,Laravel 提供了一个 updateOrCreate 方法来一步完成该操做,相似 firstOrCreate 方法, updateOrCreate 方法会持久化模型,因此无需调用 save() :数据库

// If there's a flight from Oakland to San Diego, set the price to $99. // If no matching model exists, create one. $flight = App\Flight::updateOrCreate( ['departure' => 'Oakland', 'destination' => 'San Diego'], ['price' => 99] );参考地址:https://d.laravel-china.org/docs/5.5/eloquent#mass-assignment
相关文章
相关标签/搜索