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.

156 lines
4.1 KiB

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