/app/modules/gii/generators/crud/default/controller.php
https://github.com/xiongchuan86/openadm-yii2 · PHP · 205 lines · 138 code · 22 blank · 45 comment · 18 complexity · 988a0f282747ac1c487224dd094538a5 MD5 · raw file
- <?php
- /**
- * This is the template for generating a CRUD controller class file.
- */
- use yii\db\ActiveRecordInterface;
- use yii\helpers\StringHelper;
- /* @var $this yii\web\View */
- /* @var $generator yii\gii\generators\crud\Generator */
- $controllerClass = StringHelper::basename($generator->controllerClass);
- $modelClass = StringHelper::basename($generator->modelClass);
- $searchModelClass = StringHelper::basename($generator->searchModelClass);
- if ($modelClass === $searchModelClass) {
- $searchModelAlias = $searchModelClass . 'Search';
- }
- /* @var $class ActiveRecordInterface */
- $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 Yii;
- use <?= ltrim($generator->modelClass, '\\') ?>;
- <?php if (!empty($generator->searchModelClass)): ?>
- use <?= ltrim($generator->searchModelClass, '\\') . (isset($searchModelAlias) ? " as $searchModelAlias" : "") ?>;
- <?php else: ?>
- use yii\data\ActiveDataProvider;
- <?php endif; ?>
- use <?= ltrim($generator->baseControllerClass, '\\') ?>;
- use yii\web\NotFoundHttpException;
- use yii\filters\VerbFilter;
- /**
- * <?= $controllerClass ?> implements the CRUD actions for <?= $modelClass ?> model.
- */
- class <?= $controllerClass ?> extends <?= StringHelper::basename($generator->baseControllerClass) . "\n" ?>
- {
- /**
- * @inheritdoc
- */
- public function behaviors()
- {
- return [
- 'verbs' => [
- 'class' => VerbFilter::className(),
- 'actions' => [
- 'delete' => ['POST'],
- ],
- ],
- ];
- }
- /**
- * Lists all <?= $modelClass ?> models.
- * @return mixed
- */
- public function actionIndex()
- {
- <?php if (!empty($generator->searchModelClass)): ?>
- $searchModel = new <?= isset($searchModelAlias) ? $searchModelAlias : $searchModelClass ?>();
- $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
- return $this->render('index', [
- 'searchModel' => $searchModel,
- 'dataProvider' => $dataProvider,
- ]);
- <?php else: ?>
- $dataProvider = new ActiveDataProvider([
- 'query' => <?= $modelClass ?>::find(),
- ]);
- return $this->render('index', [
- 'dataProvider' => $dataProvider,
- ]);
- <?php endif; ?>
- }
- /**
- * Displays a single <?= $modelClass ?> model.
- * <?= implode("\n * ", $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(Yii::$app->request->post()) && $model->save()) {
- return $this->redirect(['view', <?= $urlParams ?>]);
- } else {
- $errors = $model->getErrors();
- if(!empty($errors)){
- foreach ($errors as $field=>$val){
- Yii::$app->session->setFlash('warning',"Field:{$field},{$val[0]}");
- }
- }
- 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 * ", $actionParamComments) . "\n" ?>
- * @return mixed
- */
- public function actionUpdate(<?= $actionParams ?>)
- {
- $model = $this->findModel(<?= $actionParams ?>);
- if ($model->load(Yii::$app->request->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 * ", $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 * ", $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 ?>::findOne(<?= $condition ?>)) !== null) {
- return $model;
- } else {
- throw new NotFoundHttpException('The requested page does not exist.');
- }
- }
- public function actionDeletes()
- {
- $result= ['code'=>200];
- $data = [];
- $post = Yii::$app->request->post();
- if($post && isset($post['ids']) && is_array($post['ids'])){
- foreach ($post['ids'] as $id){
- $model = $this->findModel($id);
- $model->delete();
- }
- $result['data'] = $data;
- $result['msg'] = '删除完成!';
- }else{
- $result=['code'=>0,'msg'=>'请选择要删除的数据!'];
- }
- if (Yii::$app->request->isAjax) {
- Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
- return $result;
- }
- return $this->redirect(['index']);
- }
- }