为了账号安全,请及时绑定邮箱和手机立即绑定

雄辩在哪里堆积

雄辩在哪里堆积

PHP
神不在的星期二 2024-01-19 20:53:00
我的问题如下所示$data = Model::whereRaw(<condition 1>)$data1 = $data->whereRaw(<condition 2>)$data2 = $data->whereRaw(<condition 3>)每当我打印时$data2->toSql()我都会得到这个select * from table where <condition 1> and <condition 2> and <condition 3>代替select * from table where <condition 1> and <condition 2>
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

因为 $data, $data1,$data2 指针指向内存中的同一个对象...


解决这个问题:


$data = Model::whereRaw(<condition 1>);


$data1 =(clone $data)->whereRaw(<condition 2>)


$data2 = (clone $data)->whereRaw(<condition 3>)


查看完整回答
反对 回复 2024-01-19
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

尝试


$data  = Model::whereRaw(<condition 1>);

$data_cloned = $data->replicate();

$data1 = $data->whereRaw(<condition 2>);

$data2 = $data_cloned->whereRaw(<condition 3>);

return $data1->toSql();


查看完整回答
反对 回复 2024-01-19
  • 2 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信