Laravel是一个功能丰富的框架。但是,您无法从官方文档中找到所有可用功能。以下是您可能不知道的一些功能。1.获取原始属性在修改Eloquent模型记录时,可以调用getOriginal()方法获取记录的原始属性$user=App\User::first();$user->name;//John$user->name="Peter";//Peter$user->getOriginal('name');//约翰$用户->getOriginal();//原始$user记录2.使用isDirty()方法检查模型是否被修改确定模型或给定属性是否被修改$user=App\User::first();$user->isDirty();//假$user->name="Peter";$user->isDirty();//true也可以检查指定的属性是否被修改。$user->isDirty('名字');//真$user->isDirty('age');//假3。获取改变的属性使用getChanges()获取改变的属性$user->getChanges()//["name"=>"Peter",]注意:这只有在你使用syncChanges()保存模型或同步时才会生效updates4.定义deleted_at字段默认情况下,Laravel使用deleted_at字段来处理软删除。您可以通过定义DELETED_AT属性来更改它。类用户扩展模型{使用SoftDeletes;*“删除时间”列的名称。**@varstring*/constDELETED_AT='is_deleted';}或定义访问类UserextendsModel{useSoftDeletes;公共功能getDeletedAtColumn(){返回'is_deleted';}}5.保存模型和关系你可以使用push()方法来保存模型和它们的关系。classUserextendsModel{publicfunctionphone(){return$this->hasOne('App\Phone');}}$user=User::first();$user->name="Peter";$user->phone->number='1234567890';$user->push();//这将更新数据库中的用户和电话6.重新加载模型使用fresh()从数据库重新加载模型。$user=App\User::first();$user->name;//John//用户表被另一个进程修改。例子:数据库又插入了一条“名字”为“彼得”的数据。$updatedUser=$user->fresh();$updatedUser->name;//Peter$user->name;//约翰7。要重新加载现有模型,您可以使用refresh()方法从数据库现有模型中重新加载具有新值的模型。$user=App\User::first();$user->name;//John//用户表被另一个进程修改。示例:“姓名”更改为“彼得”。$user->refresh();$user->name;//Peter注意:refresh()也会更新模型的关联模型数据。8.检查模型是否相同使用is()方法判断两个模型是否具有相同的主键并且属于同一个表。$user=App\User::find(1);$sameUser=App\User::find(1);$diffUser=App\User::find(2);$user->is($sameUser);//true$user->is($diffUser);//错误9。克隆模型您可以使用replicate()方法将模型复制到新对象中。$user=App\User::find(1);$newUser=$user->replicate();$newUser->save();10.在使用find()或findOrFail()方法时,在find()方法中指定要查找的属性,可以传入第二个参数指定要查找的属性。$user=App\User::find(1,['name','age']);$user=App\User::findOrFail(1,['name','age']);如果您觉得本文对您有帮助,请点赞表达您的喜欢。也很想听听您对此的想法和想法。你可以在推特上找到我。转自PHP/Laravel开发者社区https://laravel-china.org/top...
