You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					83 lines
				
				1.8 KiB
			
		
		
			
		
	
	
					83 lines
				
				1.8 KiB
			| 
											12 years ago
										 | <?php
 | ||
| 
											12 years ago
										 | 
 | ||
|  | use yii\helpers\StringHelper;
 | ||
|  | 
 | ||
| 
											12 years ago
										 | /**
 | ||
| 
											12 years ago
										 |  * This is the template for generating a CRUD controller class file.
 | ||
|  |  *
 | ||
| 
											12 years ago
										 |  * @var yii\web\View $this
 | ||
| 
											12 years ago
										 |  * @var yii\gii\generators\crud\Generator $generator
 | ||
| 
											12 years ago
										 |  */
 | ||
| 
											12 years ago
										 | 
 | ||
|  | $modelClass = StringHelper::basename($generator->modelClass);
 | ||
|  | $searchModelClass = StringHelper::basename($generator->searchModelClass);
 | ||
|  | $rules = $generator->generateSearchRules();
 | ||
|  | $labels = $generator->generateSearchLabels();
 | ||
|  | $searchAttributes = $generator->getSearchAttributes();
 | ||
|  | $searchConditions = $generator->generateSearchConditions();
 | ||
|  | 
 | ||
|  | echo "<?php\n";
 | ||
|  | ?>
 | ||
|  | 
 | ||
| 
											12 years ago
										 | namespace <?= StringHelper::dirname(ltrim($generator->searchModelClass, '\\')) ?>;
 | ||
| 
											12 years ago
										 | 
 | ||
|  | use yii\base\Model;
 | ||
|  | use yii\data\ActiveDataProvider;
 | ||
| 
											12 years ago
										 | use <?= ltrim($generator->modelClass, '\\') ?>;
 | ||
| 
											12 years ago
										 | 
 | ||
|  | /**
 | ||
| 
											12 years ago
										 |  * <?= $searchModelClass ?> represents the model behind the search form about <?= $modelClass ?>.
 | ||
| 
											12 years ago
										 |  */
 | ||
| 
											12 years ago
										 | class <?= $searchModelClass ?> extends Model
 | ||
| 
											12 years ago
										 | {
 | ||
| 
											12 years ago
										 | 	public $<?= implode(";\n\tpublic $", $searchAttributes) ?>;
 | ||
| 
											12 years ago
										 | 
 | ||
|  | 	public function rules()
 | ||
|  | 	{
 | ||
| 
											12 years ago
										 | 		return [
 | ||
| 
											12 years ago
										 | 			<?= implode(",\n\t\t\t", $rules) ?>,
 | ||
| 
											12 years ago
										 | 		];
 | ||
| 
											12 years ago
										 | 	}
 | ||
|  | 
 | ||
|  | 	/**
 | ||
| 
											12 years ago
										 | 	 * @inheritdoc
 | ||
| 
											12 years ago
										 | 	 */
 | ||
|  | 	public function attributeLabels()
 | ||
|  | 	{
 | ||
| 
											12 years ago
										 | 		return [
 | ||
| 
											12 years ago
										 | <?php foreach ($labels as $name => $label): ?>
 | ||
| 
											12 years ago
										 | 			<?= "'$name' => '" . addslashes($label) . "',\n" ?>
 | ||
| 
											12 years ago
										 | <?php endforeach; ?>
 | ||
| 
											12 years ago
										 | 		];
 | ||
| 
											12 years ago
										 | 	}
 | ||
|  | 
 | ||
|  | 	public function search($params)
 | ||
|  | 	{
 | ||
| 
											12 years ago
										 | 		$query = <?= $modelClass ?>::find();
 | ||
| 
											12 years ago
										 | 		$dataProvider = new ActiveDataProvider([
 | ||
| 
											12 years ago
										 | 			'query' => $query,
 | ||
| 
											12 years ago
										 | 		]);
 | ||
| 
											12 years ago
										 | 
 | ||
|  | 		if (!($this->load($params) && $this->validate())) {
 | ||
|  | 			return $dataProvider;
 | ||
|  | 		}
 | ||
|  | 
 | ||
| 
											12 years ago
										 | 		<?= implode("\n\t\t", $searchConditions) ?>
 | ||
| 
											12 years ago
										 | 
 | ||
|  | 		return $dataProvider;
 | ||
|  | 	}
 | ||
|  | 
 | ||
|  | 	protected function addCondition($query, $attribute, $partialMatch = false)
 | ||
|  | 	{
 | ||
|  | 		$value = $this->$attribute;
 | ||
|  | 		if (trim($value) === '') {
 | ||
|  | 			return;
 | ||
|  | 		}
 | ||
|  | 		if ($partialMatch) {
 | ||
| 
											12 years ago
										 | 			$query->andWhere(['like', $attribute, $value]);
 | ||
| 
											12 years ago
										 | 		} else {
 | ||
| 
											12 years ago
										 | 			$query->andWhere([$attribute => $value]);
 | ||
| 
											12 years ago
										 | 		}
 | ||
|  | 	}
 | ||
|  | }
 |