新增,更新,删除

最后更新于:2022-04-01 15:11:46

要从模型新增一条数据到数据库,只要建立一个模型实例并调用 save 方法即可。 ## 储存新的模型数据 ~~~ $user = new User; $user->name = 'John'; $user->save(); ~~~ > 注意: 通常 Eloquent 模型主键值会自动递增。但是您若想自定义主键,将 incrementing 属性设成 false 。 也可以使用 `create` 方法存入新的模型数据,新增完后会返回新增的模型实例。但是在新增前,需要先在模型类里设定好 `fillable` 或 `guarded` 属性,因为 Eloquent 默认会防止批量赋值。 在新模型数据被储存或新增后,若模型有自动递增主键,可以从对象取得 id 属性值: ~~~ $insertedId = $user->id; ~~~ ## 在模型里设定 Guarded 属性 ~~~ class User extends Model { protected $guarded = ['id', 'account_id']; } ~~~ ## 使用模型的 Create 方法 ~~~ // 在数据库中建立一个新的用户... $user = User::create(['name' => 'John']); // 以属性找用户,若没有则新增并取得新的实例... $user = User::firstOrCreate(['name' => 'John']); // 以属性找用户,若没有则建立新的实例... $user = User::firstOrNew(['name' => 'John']); ~~~ ## 更新取出的模型 要更新模型,可以取出它,更改属性值,然后使用 save 方法: ~~~ $user = User::find(1); $user->email = 'john@foo.com'; $user->save(); ~~~ ## 储存模型和关联数据 有时您可能不只想要储存模型本身,也想要储存关联的数据。您可以使用 push 方法达到目的: ~~~ $user->push(); ~~~ 您可以结合查询语句,批次更新模型: ~~~ $affectedRows = User::where('votes', '>', 100)->update(['status' => 2]); ~~~ > 注意: 若使用 Eloquent 查询构造器批次更新模型,则不会触发模型事件。 ## 删除模型 要删除模型,只要使用实例调用 delete 方法: ~~~ $user = User::find(1); $user->delete(); ~~~ ## 按主键值删除模型 ~~~ User::destroy(1); User::destroy([1, 2, 3]); User::destroy(1, 2, 3); ~~~ 当然,您也可以结合查询语句批次删除模型: ~~~ $affectedRows = User::where('votes', '>', 100)->delete(); ~~~ ## 只更新模型的时间戳 如果您只想要更新模型的时间戳,您可以使用 touch 方法: ~~~ $user->touch(); ~~~
';