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.
		
		
		
		
		
			
		
			
				
					
					
						
							155 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							155 lines
						
					
					
						
							4.1 KiB
						
					
					
				<?php | 
						|
 | 
						|
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'; | 
						|
} | 
						|
 | 
						|
$pks = $generator->getTableSchema()->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 yii\data\ActiveDataProvider; | 
						|
use <?= ltrim($generator->baseControllerClass, '\\') ?>; | 
						|
use yii\web\HttpException; | 
						|
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 HttpException 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 HttpException(404, 'The requested page does not exist.'); | 
						|
		} | 
						|
	} | 
						|
}
 | 
						|
 |