@bizzonaru

Как сделать, чтобы ActiveRecord mongodb отдавал молели, а массив?

Использую Yii расширение монгодб, получаю данные и отрисовываю в grid. По аналогии как c MySQL хотел кастомизировать значение колонки, то оказывается, что по умолчанию, в анонимную функцию передается не модель, а просто массив.
[
                                    'attribute' => 'type_id',
                                    'label' => 'Список',
                                    'value' => function($model) { 
                                        return print_r($model, true);  // здесь нельзя работать как с моделью вызывая из неё функции
                                    }                                    
                                ],


use yii\data\ActiveDataProvider;
use yii\mongodb\Query;


            $query = new Query();
            $query->from('tariffs')->where(['user_id' => $user->id]);     

            $dataProvider = new ActiveDataProvider([
                'query' => $query,
                    'pagination' => [
                    'pageSize' => 10,
                ]
            ]);
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
qonand
@qonand
Software Engineer
оказывается, что по умолчанию, в анонимную функцию передается не модель, а просто массив.

В ананонимку передаются те данные которые Вы сформировали, в данном случае Вы формируете данные с помощью yii\mongodb\Query. Query - это обычный запрос не привязанный никоим образом к объектам. Если хотите привязывать результат запроса к объектом используйте yii\mongodb\ActiveQuery
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы