Laravel Eloquent 骚操作

push

一对一关联模型,使用push可以一起保存。

$dynamic = PersonDynamic::query()->where('id', 1)->first();
$dynamic->setAttribute('content', '哈哈哈');
$dynamic->user->money = 10;
$dynamic->push();

 

不触发模型事件

注:Eloquent 的批量更新不会触发 saved 和 updated 事件。这是因为批量更新时,从不去检索模型。

laravel5.7以上

YourModel::withoutEvents(function(){
     // do something...
});

laravel5.7以下

$dispatcher = PersonDynamic::getEventDispatcher();
PersonDynamic::unsetEventDispatcher();
$first = PersonDynamic::query()->where('id', 1)->first();
$first->content = 999;
$first->saveOrFail();
PersonDynamic::setEventDispatcher($dispatcher);

模型是否被修改过

$first = PersonDynamic::query()->where('id', 1)->first();
var_dump($first->isDirty());//bool(false)
$first->setAttribute('content', 'haha');
var_dump($first->isDirty());//bool(true)
var_dump($first->isDirty(['content']));//bool(true)
var_dump($first->isDirty(['user_id']));//bool(false)
var_dump($first->getDirty());//["content" => "haha"]
var_dump($first->getOriginal());//原始数据
var_dump($first->getOriginal('content'));//745646

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值