Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-如何从模型及其所有标准进行克隆_Php_Laravel_Model_Criteria - Fatal编程技术网

Php Laravel-如何从模型及其所有标准进行克隆

Php Laravel-如何从模型及其所有标准进行克隆,php,laravel,model,criteria,Php,Laravel,Model,Criteria,我有一个包含模型的变量,我想将它及其所有条件复制到另一个变量 $modelOne = ModelOne::where('column_one', 'value_one'); if($condition_one) { $modelOne = $modelOne->where('column_two', 'value_two'); } 。。。还有很多其他条件 $modelTwo = $modelOne; 问题从这里开始,当我将另一个where添加到$modelTwo时,$mode

我有一个包含模型的变量,我想将它及其所有条件复制到另一个变量

$modelOne = ModelOne::where('column_one', 'value_one');

if($condition_one) {
    $modelOne = $modelOne->where('column_two', 'value_two');
}
。。。还有很多其他条件

$modelTwo = $modelOne;
问题从这里开始,当我将另一个
where
添加到
$modelTwo
时,
$modelOne
也会受到影响

例如,当我执行
$modelTwo->where('specific_column','specific_value')
时,
$modelOne
将受到
$modelTwo
where
设置的限制


如何将它们的
where
s分开?

您可以使用PHP
clone
关键字:

$modelOne = ModelOne::where('column_one', 'value_one');
// ...

$modelTwo = clone $modelOne;
// changes to $modelTwo should not affect $modelOne anymore

雄辩的构建器在内部实现了
\u clone
魔术方法来同时克隆内部查询构建器

这个问题在这里回答是的,你是对的。