Здравствуйте, нужна помощь. Мне необходимо переписать метод с Yii1 на Yii2.
Суть такая: метод принимает массив значений, к примеру
[["name" => "attr_date_end", "jointype" => "left join"]]
Вот реализация метода
foreach ($attributes as $item) {
$criteria = new CDbCriteria;
criteria->select = (!is_array($this->getDbCriteria()->select) ? $this->getDbCriteria()->select : '') . ", " . $item['name'] . "." .$item['select'] . " as " . $item['name'];
$criteria->join = " " . $item['jointype'] . " cms_attributes_values " . $item['name'] . " on " . $item['name'] . ".id_obj=t.id AND " . $item['name'] . ".id_attr=" . $item['id_attr'] . " AND " . $item['name'] . ".id_tree=" . $item['id_tree'] . ($item['condition'] ? ' AND ' . str_replace("[id_variant]", $item['name'] . ".id_variant", str_replace("[id_val]", $item['name'] . ".id_val", str_replace("[text]", $item['name'] . ".text", $item['condition']))) : '');
$this->getDbCriteria()->mergeWith($criteria);
}
return $this;
Нужно реализовать такое же, но на Yii2, пока сделал так:
$query = new Query();
$query->select = (!is_array($query->select) ? $query->select : '') . ", " . $item['name'] . "." . $item['select'] . " as " . $item['name'];
$query->join = " " . $item['jointype'] . " cms_attributes_values " . $item['name'] . " on " . $item['name'] . ".id_obj=t.id AND " . $item['name'] . ".id_attr=" . $item['id_attr'] . " AND " . $item['name'] . ".id_tree=" . $item['id_tree'] . ($item['condition'] ? ' AND ' . str_replace("[id_variant]", $item['name'] . ".id_variant", str_replace("[id_val]", $item['name'] . ".id_val", str_replace("[text]", $item['name'] . ".text", $item['condition']))) : '');
Но createCommand() выдает ошибку Invalid argument supplied for foreach()
Если кто может, прошу помочь