1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php
use yii\helpers\StringHelper;
/**
* This is the template for generating a CRUD controller class file.
*
* @var yii\base\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
$controllerClass = StringHelper::basename($generator->controllerClass);
$modelClass = StringHelper::basename($generator->modelClass);
$searchModelClass = StringHelper::basename($generator->searchModelClass);
$pks = $generator->getTableSchema()->primaryKey;
$urlParams = $generator->generateUrlParams();
$actionParams = $generator->generateActionParams();
$actionParamComments = $generator->generateActionParamComments();
echo "<?php\n";
?>
namespace <?php echo StringHelper::dirname(ltrim($generator->controllerClass, '\\')); ?>;
use <?php echo ltrim($generator->modelClass, '\\'); ?>;
use <?php echo ltrim($generator->searchModelClass, '\\'); ?>;
use yii\data\ActiveDataProvider;
use <?php echo ltrim($generator->baseControllerClass, '\\'); ?>;
use yii\web\HttpException;
use yii\web\VerbFilter;
/**
* <?php echo $controllerClass; ?> implements the CRUD actions for <?php echo $modelClass; ?> model.
*/
class <?php echo $controllerClass; ?> extends <?php echo StringHelper::basename($generator->baseControllerClass) . "\n"; ?>
{
public function behaviors()
{
return array(
'verbs' => array(
'class' => VerbFilter::className(),
'actions' => array(
'delete' => array('post'),
),
),
);
}
/**
* Lists all <?php echo $modelClass; ?> models.
* @return mixed
*/
public function actionIndex()
{
$searchModel = new <?php echo $searchModelClass; ?>;
$dataProvider = $searchModel->search($_GET);
return $this->render('index', array(
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
));
}
/**
* Displays a single <?php echo $modelClass; ?> model.
* <?php echo implode("\n\t * ", $actionParamComments) . "\n"; ?>
* @return mixed
*/
public function actionView(<?php echo $actionParams; ?>)
{
return $this->render('view', array(
'model' => $this->findModel(<?php echo $actionParams; ?>),
));
}
/**
* Creates a new <?php echo $modelClass; ?> model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
*/
public function actionCreate()
{
$model = new <?php echo $modelClass; ?>;
if ($model->load($_POST) && $model->save()) {
return $this->redirect(array('view', <?php echo $urlParams; ?>));
} else {
return $this->render('create', array(
'model' => $model,
));
}
}
/**
* Updates an existing <?php echo $modelClass; ?> model.
* If update is successful, the browser will be redirected to the 'view' page.
* <?php echo implode("\n\t * ", $actionParamComments) . "\n"; ?>
* @return mixed
*/
public function actionUpdate(<?php echo $actionParams; ?>)
{
$model = $this->findModel(<?php echo $actionParams; ?>);
if ($model->load($_POST) && $model->save()) {
return $this->redirect(array('view', <?php echo $urlParams; ?>));
} else {
return $this->render('update', array(
'model' => $model,
));
}
}
/**
* Deletes an existing <?php echo $modelClass; ?> model.
* If deletion is successful, the browser will be redirected to the 'index' page.
* <?php echo implode("\n\t * ", $actionParamComments) . "\n"; ?>
* @return mixed
*/
public function actionDelete(<?php echo $actionParams; ?>)
{
$this->findModel(<?php echo $actionParams; ?>)->delete();
return $this->redirect(array('index'));
}
/**
* Finds the <?php echo $modelClass; ?> model based on its primary key value.
* If the model is not found, a 404 HTTP exception will be thrown.
* <?php echo implode("\n\t * ", $actionParamComments) . "\n"; ?>
* @return <?php echo $modelClass; ?> the loaded model
* @throws HttpException if the model cannot be found
*/
protected function findModel(<?php echo $actionParams; ?>)
{
<?php
if (count($pks) === 1) {
$condition = '$id';
} else {
$condition = array();
foreach ($pks as $pk) {
$condition[] = "'$pk' => \$$pk";
}
$condition = 'array(' . implode(', ', $condition) . ')';
}
?>
if (($model = <?php echo $modelClass; ?>::find(<?php echo $condition; ?>)) !== null) {
return $model;
} else {
throw new HttpException(404, 'The requested page does not exist.');
}
}
}