早上好,
我的模型(BaseData.php)中有两个函数,每个函数都返回一个对象。
在我的EditorController.php中,我将调用这些函数。
$obj1 = BaseData::getRestrictedTemplate($categoryTitle);
$obj2 = BaseData::getCommonCategory($categoryTitle);
我需要的是合并这两个对象。。我通过这样做尝试了array_merge
函数。。
$query = (object)(array_merge((array)$obj1, (array)$obj2));
这就是合并。但实际情况是,它将对象投射到stdClass
而不是yii/db/Query
中
如何在不更改对象yii/db/Query
.的情况下完成此操作。。请帮忙。谢谢
$query = (object)(array_merge((array)$obj1, (array)$obj2));
这将从数组创建一个stdClass对象。现在,为了再次创建yii/db/Query对象,请将此对象传递给yii/db/Query构造函数。
$query = (object)(array_merge((array)$obj1, (array)$obj2));
$query = new yii/db/Query($query);
注意:这只适用于两个对象都属于同一类的情况,否则您将丢失方法或获得未知属性错误。为此,您必须循环遍历数组,并将其所需的键和值分配给类的对象。
$array = (object)($mergedArray);
$object = new yii/db/Query();
foreach ($array as $key => $value)
{
$object->$key = $value;
}