/** * Prepares the data provider that should return the requested collection of the models. * @param \yii\base\Model * @return ActiveDataProvider */ protected function prepareDataProvider($model) { $dataProvider = parent::prepareDataProvider($model); /** @var \yii\db\ActiveQuery $query */ $query = $dataProvider->query; // lazy load related models to mark checkboxes $relation = Yii::$app->request->getQueryParam('relation'); if (!empty($relation)) { $query->with($relation); } return $dataProvider; }
/** * @inheritdoc */ public function actions() { $actions = ['index' => ['class' => \netis\crud\crud\IndexAction::className()], 'relation' => ['class' => \netis\crud\crud\RelationAction::className()], 'view' => ['class' => \netis\crud\crud\ViewAction::className()], 'update' => ['class' => \netis\crud\crud\UpdateAction::className(), 'createScenario' => $this->createScenario, 'updateScenario' => $this->updateScenario], 'delete' => ['class' => \netis\crud\crud\DeleteAction::className()], 'options' => ['class' => \yii\rest\OptionsAction::className()], 'help' => ['class' => HelpAction::className(), 'viewPrefix' => 'help', 'defaultView' => 'index.md']]; $helpAction = Yii::createObject($actions['help'], ['help', $this]); try { $helpAction->run(); } catch (NotFoundHttpException $e) { unset($actions['help']); } foreach ($this->actionsClassMap as $id => $action) { if (!isset($actions[$id])) { $actions[$id] = []; } if (is_string($action)) { $actions[$id]['class'] = $action; } else { unset($action['verbs']); $actions[$id] = array_merge($actions[$id], $action); } } return $actions; }