1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * This is the template for generating CRUD search class of the specified model.
- */
- use yii\helpers\StringHelper;
- /* @var $this yii\web\View */
- /* @var $generator yii\gii\generators\crud\Generator */
- $modelClass = StringHelper::basename($generator->modelClass);
- $searchModelClass = StringHelper::basename($generator->searchModelClass);
- if ($modelClass === $searchModelClass) {
- $modelAlias = $modelClass . 'Model';
- }
- $rules = $generator->generateSearchRules();
- $labels = $generator->generateSearchLabels();
- $searchAttributes = $generator->getSearchAttributes();
- $searchConditions = $generator->generateSearchConditions();
- echo "<?php\n";
- ?>
- namespace <?= StringHelper::dirname(ltrim($generator->searchModelClass, '\\')) ?>;
- use Yii;
- use yii\base\Model;
- use yii\data\ActiveDataProvider;
- use <?= ltrim($generator->modelClass, '\\') . (isset($modelAlias) ? " as $modelAlias" : "") ?>;
- /**
- * <?= $searchModelClass ?> represents the model behind the search form about `<?= $generator->modelClass ?>`.
- */
- class <?= $searchModelClass ?> extends <?= isset($modelAlias) ? $modelAlias : $modelClass ?>
- {
- /**
- * @inheritdoc
- */
- public function rules()
- {
- return [
- <?= implode(",\n ", $rules) ?>,
- ];
- }
- /**
- * @inheritdoc
- */
- public function scenarios()
- {
- // bypass scenarios() implementation in the parent class
- return Model::scenarios();
- }
- /**
- * Creates data provider instance with search query applied
- *
- * @param array $params
- *
- * @return ActiveDataProvider
- */
- public function search($params)
- {
- $query = <?= isset($modelAlias) ? $modelAlias : $modelClass ?>::find();
- $dataProvider = new ActiveDataProvider([
- 'query' => $query,
- 'sort' => [
- 'defaultOrder' => [
- 'id' => SORT_DESC
- ]
- ]
- ]);
- $this->load($params);
- if (!$this->validate()) {
- // uncomment the following line if you do not want to return any records when validation fails
- // $query->where('0=1');
- return $dataProvider;
- }
- <?= implode("\n ", $searchConditions) ?>
- return $dataProvider;
- }
- }
|