你可能不知道的 Laravel Eloquent 操作

简介: 你可能不知道的 Laravel Eloquent 操作

Laravel Eloquent 提供了太多现成的方法,但是官方文档上有些东西是看不到的,这就需要日常开发的积累,源码的查看,以及相互之间的分享。


今天主要分享一下我知道的可能你不知道的而且文档没有的 Eloquent 中的几个操作。


push


大概率会碰到的。假设现在用户模型 User 和 微信 Wechat 是一对一关系,然后进行以下操作:

$user = User::where('name', 'wuqinqiang')->first();
$user->age = 18;
$user->wechat->nickName = "Remember";
$user->save()

那么此时,会保存用户信息,但是并不会保存对应 Wechat 的关联信息,想让它一起保存咋么办?也很简单。把 save 换成 push 即可。

$user->push();

我不想要模型事件


我们都知道,在使用 Eloquent 模型的时候,创建或者更新模型这些操作的时候,是有几个阶段的事件的,有时候可能因为业务上的需要,可能会监听某个事件执行某些操作。比如下面这段监听对应事件执行对应操作的代码:

public static function boot()
    {
        parent::boot();
        static::creating(function ($model) {
           //业务逻辑
        });
    }

那要是不想在操作时触发任何事件则么办?你可以执行一个回调函数而无需触发任何事件:

$user = User::withoutEvents(function () {
return //保存或者更新代码
});

模型是否被动过手脚


想知道从数据库查询获取出来的模型是否被动过手脚 (修改)? 也有办法。可以使用 isDirty

$ user = User :: where('name','wuqinqiang')->first();
$ user-> isDirty(); // 还没被动过 返回 false
$ user-> name ='curry';  
$ user-> isDirty(); //模型被动过了 返回true 
$ user-> isDirty('email'); // 可以传入参数  验证某个参数是否被动过,这个我还没碰过 当然 false
$ user-> isDirty('name'); // true

如果你还想具体了解到哪些是被动过了,可以使用:


$user->getDirty();  你将得到一个数组 ["name" => "curry"]

我想看原始数据

既然上面提到是否被动过手脚,那动过手脚之后我又想看看之前的模样 (ps: 人就是这样麻烦)。强大的 Laravel Eloquent 也可以办到:

$ user = User :: where('name','wuqinqiang')->first();
$user->name = 'curry';
$user->getOriginal(); // 返回数组 "name" => "wuqinqiang"
$user->getOriginal('name'); //指定要看哪个属性的原值  "wuqinqiang"
相关文章
|
7月前
|
存储 小程序 NoSQL
laravel5.8(九)session基本使用
Session这个玩意还是挺重要的。 Laravel对于session的支持还是很完全的。 一:文件位置 Session 配置文件位于 config/session.php。 默认情况下,Laravel 使用的 Session 驱动为 file 驱动,这对许多应用而言是没有什么问题的。 在生产环境中,你可能考虑使用 memcached 或者 redis 驱动以便获取更佳的 Session 性能,尤其是线上同一个应用部署到多台机器的时候,这是最佳实践。 1. 复制代码 Session 驱动用于定义请求的 Session 数据存放在哪里,Laravel 可以处理多种类型的驱动: 1. bash
55 0
|
9月前
|
PHP 开发工具 数据库
laravel系列(二) Dcat admin框架开发工具使用
laravel系列(二) Dcat admin框架开发工具使用
168 0
|
SQL IDE PHP
Laravel Eloquent 模型 使用技巧
Laravel Eloquent 模型使用技巧
113 0
|
存储 JSON 数据处理
最为常用的Laravel操作(1)-Eloquent模型
整理了 Laravel 框架 Eloquent 模型最常用的操作,包括一些常用的属性、方法,模型关联等。本系列共有 3 篇文章。
64 2
|
缓存
jira学习案例89-react-query处理服务器缓存
jira学习案例89-react-query处理服务器缓存
75 0
jira学习案例89-react-query处理服务器缓存
|
数据库连接 PHP 数据库
Yii2如何使用ActiveRecord?
Yii2如何使用ActiveRecord?
113 0
|
SQL PHP 数据库
Laravel Eloquent 模型 进阶技巧
Laravel Eloquent 模型使用进阶技巧
126 0
Laravel Eloquent 关联模型 进阶使用技巧
Laravel Eloquent 关联模型 进阶使用技巧
130 0
新版本 Laravel Eloquent 关联模型 使用技巧
新版本 Laravel Eloquent 关联模型 使用技巧
106 0