Найдено 178 результатов

BalykhinAS
2018.02.07, 21:33
Форум: Общие вопросы (Yii 2.x)
Тема: $query->where() с большим массивом долго выполняется
Ответы: 14
Просмотры: 4452

$query->where() с большим массивом долго выполняется

есть запрос

Код: Выделить всё

$query->where([ $tableModel . '.category_id' => $currentCategory['children']]);
в $currentCategory['children'] 6541 ид-ов. в итоге запрос выполняется от 7 до 12 секунду. В чем проблема?
BalykhinAS
2018.02.07, 02:32
Форум: Общие вопросы (Yii 2.x)
Тема: __construct() что вместо него использовать в контроллере?
Ответы: 1
Просмотры: 614

__construct() что вместо него использовать в контроллере?

Подскажите - необходимо создать общий контроллер в котором один раз определить переменные для всех дочерних. Какой метод в глобальном контроллере от которого все наследуют использовать что бы он отрабатывал "автоматом"?

ткнул пальцем в небо - public function init() но верно ли это?
BalykhinAS
2018.02.06, 16:54
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

А что, createCommand() вызвать - это гиперсложно? не то что бы сложно... $models = $query->offset($pages->offset) ->select('id, store_id, name, price') ->with(['store' => function (\yii\db\ActiveQuery $query) { $query->select('id, name'); }]) ->with(['images' => function (\yii\db\ActiveQuery $query...
BalykhinAS
2018.02.06, 16:39
Форум: Общие вопросы (Yii 2.x)
Тема: Упрощенная выборка модели
Ответы: 1
Просмотры: 774

Упрощенная выборка модели

Есть ли какая то опция для упрощенной выборки - только поля. asArray не подходит, а в стандарте слишком много хлама который на фронте не нужен но в моделях есть методы которые используются во view. Сделал замер скорости с классическими моделями и такой же выборкой только через Query на 50к товарах р...
BalykhinAS
2018.02.05, 23:11
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

вариант для моделей $products = Product::find() ->select('id, name, price') ->limit(10) ->createCommand() ->queryAll(5); на выходе stdClass вместо массива правда некоторые плюшки не доступны при таком подходе Использовать модель для того, чтобы использовать ее как кверибилдер? это меня понесло)) не...
BalykhinAS
2018.02.05, 22:51
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

вариант для моделей

Код: Выделить всё

        $products = Product::find()
            ->select('id, name, price')
            ->limit(10)
            ->createCommand()
            ->queryAll(5);
на выходе stdClass вместо массива

правда некоторые плюшки не доступны при таком подходе
BalykhinAS
2018.02.05, 21:54
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

Можно вообще не использовать Yii, если не нравятся ее подходы или если от фреймворка нужны только хелперы. Есть Doctrine есть другие инструменты для работы с бд. можно, вопрос ведь не в том использовать или нет, суть в том что кто то работает с массивами а кому то удобное работать с объектами (stdC...
BalykhinAS
2018.02.05, 21:48
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

просто получается что PDOStatement::setFetchMode предусмотрен, но что бы (даже если и в частных случаях как мой) воспользоваться им надо искать варианты вместо того что бы просто воспользоваться в том же Query
BalykhinAS
2018.02.05, 21:45
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

не знаю, возможно наколхозил но мне как то удобное работать с объектами вместо массивов еще один вариант))) class Query extends \yii\db\Query { public function allClass($db = null) { if ($this->emulateExecution) { return []; } $rows = $this->createCommand($db)->queryAll(5); return $this->populate($r...
BalykhinAS
2018.02.05, 21:40
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

$products = (new Query()) ->select('id, name, price') ->from('c_products') ->orderBy('RAND()') ->limit(5)->createCommand()->queryAll(5); такой вариант тоже отдает stdClass $products = Product::find()->all(); Отдаст массив с объектами Product да, но для этого необходимо создать модель Product
BalykhinAS
2018.02.05, 21:02
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

Код: Выделить всё

        $products = (new Query())
            ->select('id, name, price')
            ->from('c_products')
            ->orderBy('RAND()')
            ->limit(5)->createCommand()->queryAll(5);
такой вариант тоже отдает stdClass
BalykhinAS
2018.02.05, 20:37
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

как то так получил желаемый результат $products = Yii::$app->db->createCommand('SELECT id, name, price FROM c_products LIMIT 1') ->queryAll(5); было бы не плохо иметь возможность установить $fetchMode и в Query public function all($db = null) { if ($this->emulateExecution) { return []; } $rows = $th...
BalykhinAS
2018.02.05, 20:00
Форум: Общие вопросы (Yii 2.x)
Тема: Выборка одного поля
Ответы: 2
Просмотры: 849

Re: Выборка одного поля

maleks писал(а): 2018.02.05, 19:55 column() вместо all()
спасибо
BalykhinAS
2018.02.05, 19:47
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

Re: ->asArray() а где ->asObject()?

someweb писал(а): 2018.02.05, 16:08 ActiveRecord::find() возвращает объекты.
то есть можно выбрать с таблицы строки в виде объектов? У меня не вышло)

в pdo есть возможность извлечь строки в виде объекта http://php.net/manual/ru/pdostatement.fetchobject.php
BalykhinAS
2018.02.05, 19:43
Форум: Общие вопросы (Yii 2.x)
Тема: Выборка одного поля
Ответы: 2
Просмотры: 849

Выборка одного поля

добрый день, подскажите $products = (new Query()) ->select('id') ->from('c_products') ->orderBy('RAND()') ->limit(10) ->all(); получаем массив Array ( [0] => Array ( [id] => 49127 ) [1] => Array ( [id] => 68019 ) ) необходимо получить массив без ключей Array ( [0] => 49127, [1] => 68019 ) есть возмо...
BalykhinAS
2018.02.05, 14:48
Форум: Общие вопросы (Yii 2.x)
Тема: ->asArray() а где ->asObject()?
Ответы: 18
Просмотры: 4841

->asArray() а где ->asObject()?

как то привычнее работать с объектами но ->asObject() не нашел? Действительно нет или не досмотрел?
BalykhinAS
2018.02.05, 14:22
Форум: Общие вопросы по программированию
Тема: Order By RAND() в большой базе
Ответы: 1
Просмотры: 1701

Order By RAND() в большой базе

Добрый день! Необходимо вывести случайные записи. Возник вопрос по быстродействию Order By RAND(). Первое что пришло в голову кроном выбрать переодически определенное количество ид (к примеру 5000) и записать в отдельную таблицу, позже с не выбирать случайным образом. Но верное ли решение, возможно ...
BalykhinAS
2018.02.05, 13:53
Форум: Документация и рецепты (Yii 2.x)
Тема: Выборка одного поля
Ответы: 1
Просмотры: 8054

Выборка одного поля

Подскажите возможно ли с запроса получить массив только со значениями поля без ключа? $topProducts = (new Query()) ->select('product_id') ->from('top_products') ->orderBy('RAND()') ->limit(20) ->all(); получается массив Array ( [0] => Array ( [product_id] => 44939 ) [1] => Array ( [product_id] => 46...