欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

介绍Laravel十个重要的用法 有大用 有大大用

1. 在find方法中指定属性

  1. User::find(1, ['name', 'email']);
  2. User::findOrFail(1, ['name', 'email']);

2. Clone一个Model

replicate方法可以克隆一个Model

  1. $user = User::find(1);
  2. $newUser = $user->replicate();
  3. $newUser->save();

3. 判断两个Model是否相同

检查两个Model的ID是否相同用is方法

  1. $user = User::find(1);
  2. $sameUser = User::find(1);
  3. $diffUser = User::find(2);
  4. $user->is($sameUser); // true
  5. $user->is($diffUser); // false;

4. 重新加载一个Model

  1. $user = User::find(1);
  2. $user->name;    // 'Peter'
  3. // 如果 name 更新过,比如由 peter 更新为 John
  4. $user->refresh();
  5. $user->name;  // John

5. 加载新的Model

  1. $user = App\User::first();
  2. $user->name;               // John
  3. //
  4. $updatedUser = $user->fresh();
  5. $updatedUser->name;       // Peter
  6. $user->name;              // John

6. 更新带关联的Model

在更新关联的时候,使用push方法可以更新所有Model

  1. class User extends Model
  2. {
  3. public function phone()
  4. {
  5. return $this->hasOne('App\Phone');
  6. }
  7. }
  8. $user = User::first();
  9. $user->name = "Peter";
  10. $user->phone->number = '1234567890';
  11. $user->save(); // 只更新 User Model
  12. $user->push(); // 更新 User 和 Phone Model

7. 自定义软删除字段

Laravel默认使用deleted_at作为软删除字段,我们通过以下方式将deleted_at改成is_deleted

  1. class User extends Model
  2. {
  3. use SoftDeletes;
  4. * deleted_at 字段.
  5. *
  6. * @var string
  7. */
  8. const DELETED_AT = 'is_deleted';
  9. }

或者使用访问器

  1. class User extends Model
  2. {
  3. use SoftDeletes;
  4. public function getDeletedAtColumn(){
  5. return 'is_deleted';
  6. }
  7. }

8. 查询Model更改的属性

  1. $user = User::first();
  2. $user->name; // John
  3. $user->name = 'Peter';
  4. $user->save();
  5. dd($user->getChanges());
  6. // 输出:
  7. [
  8. 'name' => 'John',
  9. 'updated_at' => '...'
  10. ]

9. 查询Model是否已更改

  1. $user = User::first();
  2. $user->name;             // John
  3. $user->isDirty();        // false
  4. $user->name = 'Peter';
  5. $user->isDirty();        // true
  6. $user->getDirty();       // ['name' => 'Peter']
  7. $user->save();
  8. $user->isDirty();        // false

getChanges()getDirty()的区别
getChanges()方法用在 save()方法之后输出结果集
getDirty()方法用在save()方法之前输出结果集

10. 查询修改前的Model信息

  1. $user = App\User::first();
  2. $user->name;                   //John
  3. $user->name = "Peter";         //Peter
  4. $user->getOriginal('name');    //John
  5. $user->getOriginal();          //Original $user record

               


来自  https://blog.csdn.net/weixin_41380972/article/details/106897037


普通分类: