Я для этого использовал кастомный behaviour. Решение не самое красивое, но лучше ничего не придумалось. Этот behaviour позволяет модели иметь совершенно произвольные свойства.
класс кастомного Behaviour
namespace app\custom\behaviors;
use yii\base\Behavior;
class ExtraPropsBehaviour extends Behavior
{
protected $_props = [];
public function canGetProperty($name, $checkVars = true)
{
return TRUE;
}
public function canSetProperty($name, $checkVars = true)
{
return TRUE;
}
public function __get($name)
{
return isset($this->_props[$name]) ? $this->_props[$name] : null;
}
public function __set($name, $value)
{
$this->_props[$name] = $value;
}
public function __isset($name)
{
return isset($this->_props);
}
}
а это добавить в модель
/** @inheritdoc */
public function behaviors()
{
return [
ExtraPropsBehaviour::className()
];
}
После применения можно обращаться к результатам сджойненной таблицы как к простым свойствам модели:
$model->field_from_joined_table