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.
		
		
		
		
		
			
		
			
				
					
					
						
							157 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							157 lines
						
					
					
						
							4.2 KiB
						
					
					
				| <?php | |
|  | |
| use yii\db\ActiveRecordInterface; | |
| use yii\helpers\StringHelper; | |
|  | |
| /** | |
|  * This is the template for generating a CRUD controller class file. | |
|  * | |
|  * @var yii\web\View $this | |
|  * @var yii\gii\generators\crud\Generator $generator | |
|  */ | |
|  | |
| $controllerClass = StringHelper::basename($generator->controllerClass); | |
| $modelClass = StringHelper::basename($generator->modelClass); | |
| $searchModelClass = StringHelper::basename($generator->searchModelClass); | |
| if ($modelClass === $searchModelClass) { | |
| 	$searchModelAlias = $searchModelClass.'Search'; | |
| } | |
|  | |
| /** @var ActiveRecordInterface $class */ | |
| $class = $generator->modelClass; | |
| $pks = $class::primaryKey(); | |
| $urlParams = $generator->generateUrlParams(); | |
| $actionParams = $generator->generateActionParams(); | |
| $actionParamComments = $generator->generateActionParamComments(); | |
|  | |
| echo "<?php\n"; | |
| ?> | |
|  | |
| namespace <?= StringHelper::dirname(ltrim($generator->controllerClass, '\\')) ?>; | |
|  | |
| use <?= ltrim($generator->modelClass, '\\') ?>; | |
| use <?= ltrim($generator->searchModelClass, '\\') ?><?php if (isset($searchModelAlias)):?> as <?= $searchModelAlias ?><?php endif ?>; | |
| use <?= ltrim($generator->baseControllerClass, '\\') ?>; | |
| use yii\web\NotFoundHttpException; | |
| use yii\web\VerbFilter; | |
|  | |
| /** | |
|  * <?= $controllerClass ?> implements the CRUD actions for <?= $modelClass ?> model. | |
|  */ | |
| class <?= $controllerClass ?> extends <?= StringHelper::basename($generator->baseControllerClass) . "\n" ?> | |
| { | |
| 	public function behaviors() | |
| 	{ | |
| 		return [ | |
| 			'verbs' => [ | |
| 				'class' => VerbFilter::className(), | |
| 				'actions' => [ | |
| 					'delete' => ['post'], | |
| 				], | |
| 			], | |
| 		]; | |
| 	} | |
|  | |
| 	/** | |
| 	 * Lists all <?= $modelClass ?> models. | |
| 	 * @return mixed | |
| 	 */ | |
| 	public function actionIndex() | |
| 	{ | |
| 		$searchModel = new <?= isset($searchModelAlias) ? $searchModelAlias : $searchModelClass ?>; | |
| 		$dataProvider = $searchModel->search($_GET); | |
|  | |
| 		return $this->render('index', [ | |
| 			'dataProvider' => $dataProvider, | |
| 			'searchModel' => $searchModel, | |
| 		]); | |
| 	} | |
|  | |
| 	/** | |
| 	 * Displays a single <?= $modelClass ?> model. | |
| 	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?> | |
| 	 * @return mixed | |
| 	 */ | |
| 	public function actionView(<?= $actionParams ?>) | |
| 	{ | |
| 		return $this->render('view', [ | |
| 			'model' => $this->findModel(<?= $actionParams ?>), | |
| 		]); | |
| 	} | |
|  | |
| 	/** | |
| 	 * Creates a new <?= $modelClass ?> model. | |
| 	 * If creation is successful, the browser will be redirected to the 'view' page. | |
| 	 * @return mixed | |
| 	 */ | |
| 	public function actionCreate() | |
| 	{ | |
| 		$model = new <?= $modelClass ?>; | |
|  | |
| 		if ($model->load($_POST) && $model->save()) { | |
| 			return $this->redirect(['view', <?= $urlParams ?>]); | |
| 		} else { | |
| 			return $this->render('create', [ | |
| 				'model' => $model, | |
| 			]); | |
| 		} | |
| 	} | |
|  | |
| 	/** | |
| 	 * Updates an existing <?= $modelClass ?> model. | |
| 	 * If update is successful, the browser will be redirected to the 'view' page. | |
| 	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?> | |
| 	 * @return mixed | |
| 	 */ | |
| 	public function actionUpdate(<?= $actionParams ?>) | |
| 	{ | |
| 		$model = $this->findModel(<?= $actionParams ?>); | |
|  | |
| 		if ($model->load($_POST) && $model->save()) { | |
| 			return $this->redirect(['view', <?= $urlParams ?>]); | |
| 		} else { | |
| 			return $this->render('update', [ | |
| 				'model' => $model, | |
| 			]); | |
| 		} | |
| 	} | |
|  | |
| 	/** | |
| 	 * Deletes an existing <?= $modelClass ?> model. | |
| 	 * If deletion is successful, the browser will be redirected to the 'index' page. | |
| 	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?> | |
| 	 * @return mixed | |
| 	 */ | |
| 	public function actionDelete(<?= $actionParams ?>) | |
| 	{ | |
| 		$this->findModel(<?= $actionParams ?>)->delete(); | |
| 		return $this->redirect(['index']); | |
| 	} | |
|  | |
| 	/** | |
| 	 * Finds the <?= $modelClass ?> model based on its primary key value. | |
| 	 * If the model is not found, a 404 HTTP exception will be thrown. | |
| 	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?> | |
| 	 * @return <?= $modelClass ?> the loaded model | |
| 	 * @throws NotFoundHttpException if the model cannot be found | |
| 	 */ | |
| 	protected function findModel(<?= $actionParams ?>) | |
| 	{ | |
| <?php | |
| if (count($pks) === 1) { | |
| 	$condition = '$id'; | |
| } else { | |
| 	$condition = []; | |
| 	foreach ($pks as $pk) { | |
| 		$condition[] = "'$pk' => \$$pk"; | |
| 	} | |
| 	$condition = '[' . implode(', ', $condition) . ']'; | |
| } | |
| ?> | |
| 		if (($model = <?= $modelClass ?>::find(<?= $condition ?>)) !== null) { | |
| 			return $model; | |
| 		} else { | |
| 			throw new NotFoundHttpException('The requested page does not exist.'); | |
| 		} | |
| 	} | |
| }
 | |
| 
 |