Как получить набор записей в простом формате через ActiveRecord?

Есть два кода: 1:

$model = new Query;
$model->select('*')->from('category');
$command = $model->createCommand();
$rows = $command->queryAll();

2:

$rows = Category::find()->all();

При манипуляции данными, (лично для меня) намного удобнее оперировать тем что выдает queryAll. С другой стороны у нас есть модель Category, созданная через Gii. Мне не понятно почему она не умеет делать так же queryAll?

Удалось реализовать так:

class CategoryQuery extends \yii\db\ActiveQuery
{

    public function queryAll()
    {
        return (new Query())->from($this->getPrimaryTableName())->createCommand()->queryAll();
    }

}


class Category extends \yii\db\ActiveRecord
{

    public static function find()
    {
        return new CategoryQuery(get_called_class());
    }

}


// Теперь можно написать так
$rows = Category::find()->queryAll();

P.S. Может это уже встроено?


Ответы (1 шт):

Автор решения: Дмитрий Гвоздь

В итоге ответ нашелся на практике.

$rows = Category::find()->createCommand()->queryAll();
→ Ссылка