Как получить набор записей в простом формате через 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();