/** * @inheritdoc * @param Review $model */ public function create($model) { if (empty($model->model) or empty($model->item_id) or empty($model->source_model) or empty($model->source_item_id)) { return false; } $exists = Review::find()->byItem($model->item_id, $model->model)->bySourceItem($model->source_item_id, $model->source_model)->count(); return !$exists; }
/** * Возвращает объект провайдера данных * @return object|ActiveDataProvider * @throws \yii\base\InvalidConfigException */ public function getDataProvider() { if (is_null($this->_dataProvider)) { $query = Review::find()->published()->byItem($this->itemId, $this->modelClass); if (is_callable($this->queryModifier)) { $func = $this->queryModifier; $func($query); } $config = ArrayHelper::merge($this->dataProviderConfig, ['class' => ActiveDataProvider::className(), 'query' => $query]); $this->_dataProvider = Yii::createObject($config); $this->_dataProvider->pagination->pageSize = $this->pageSize; $this->_dataProvider->sort->defaultOrder = $this->orderBy; } return $this->_dataProvider; }