- $dataProvider,
'filter' => $this->render("_search", ['model' => $searchModel]),
'batch' => [
@@ -61,7 +60,7 @@ $this->params['breadcrumbs'][] = $this->title;
'attribute' => 'description',
'enableSorting' => false,
'format' => 'ntext',
- 'width' => '55%',
+ 'width' => '50%',
],
[
'class' => 'blobt\grid\ActionColumn',
diff --git a/vendor/blobt/generators/crud/default/controller.php b/vendor/blobt/generators/crud/default/controller.php
new file mode 100644
index 0000000..b7049e7
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/controller.php
@@ -0,0 +1,179 @@
+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 "
+
+namespace = StringHelper::dirname(ltrim($generator->controllerClass, '\\')) ?>;
+
+use Yii;
+use = ltrim($generator->modelClass, '\\') ?>;
+searchModelClass)): ?>
+use = ltrim($generator->searchModelClass, '\\') . (isset($searchModelAlias) ? " as $searchModelAlias" : "") ?>;
+
+use yii\data\ActiveDataProvider;
+
+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()
+ {
+searchModelClass)): ?>
+ $searchModel = new = isset($searchModelAlias) ? $searchModelAlias : $searchModelClass ?>();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+
+ $dataProvider = new ActiveDataProvider([
+ 'query' => = $modelClass ?>::find(),
+ ]);
+
+ return $this->render('index', [
+ 'dataProvider' => $dataProvider,
+ ]);
+
+ }
+
+ /**
+ * Displays a single = $modelClass ?> model.
+ * = implode("\n * ", $actionParamComments) . "\n" ?>
+ * @return mixed
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ 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 ?>]);
+ }
+
+ 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
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ public function actionUpdate(= $actionParams ?>)
+ {
+ $model = $this->findModel(= $actionParams ?>);
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', = $urlParams ?>]);
+ }
+
+ 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
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ 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 ?>)
+ {
+ \$$pk";
+ }
+ $condition = '[' . implode(', ', $condition) . ']';
+}
+?>
+ if (($model = = $modelClass ?>::findOne(= $condition ?>)) !== null) {
+ return $model;
+ }
+
+ throw new NotFoundHttpException(= $generator->generateString('The requested page does not exist.') ?>);
+ }
+}
diff --git a/vendor/blobt/generators/crud/default/search.php b/vendor/blobt/generators/crud/default/search.php
new file mode 100644
index 0000000..0ca91d4
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/search.php
@@ -0,0 +1,86 @@
+modelClass);
+$searchModelClass = StringHelper::basename($generator->searchModelClass);
+if ($modelClass === $searchModelClass) {
+ $modelAlias = $modelClass . 'Model';
+}
+$rules = $generator->generateSearchRules();
+$labels = $generator->generateSearchLabels();
+$searchAttributes = $generator->getSearchAttributes();
+$searchConditions = $generator->generateSearchConditions();
+
+echo "
+
+namespace = StringHelper::dirname(ltrim($generator->searchModelClass, '\\')) ?>;
+
+use yii\base\Model;
+use yii\data\ActiveDataProvider;
+use = ltrim($generator->modelClass, '\\') . (isset($modelAlias) ? " as $modelAlias" : "") ?>;
+
+/**
+ * = $searchModelClass ?> represents the model behind the search form of `= $generator->modelClass ?>`.
+ */
+class = $searchModelClass ?> extends = isset($modelAlias) ? $modelAlias : $modelClass ?>
+
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function rules()
+ {
+ return [
+ = implode(",\n ", $rules) ?>,
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function scenarios()
+ {
+ // bypass scenarios() implementation in the parent class
+ return Model::scenarios();
+ }
+
+ /**
+ * Creates data provider instance with search query applied
+ *
+ * @param array $params
+ *
+ * @return ActiveDataProvider
+ */
+ public function search($params)
+ {
+ $query = = isset($modelAlias) ? $modelAlias : $modelClass ?>::find();
+
+ // add conditions that should always apply here
+
+ $dataProvider = new ActiveDataProvider([
+ 'query' => $query,
+ ]);
+
+ $this->load($params);
+
+ if (!$this->validate()) {
+ // uncomment the following line if you do not want to return any records when validation fails
+ // $query->where('0=1');
+ return $dataProvider;
+ }
+
+ // grid filtering conditions
+ = implode("\n ", $searchConditions) ?>
+
+ return $dataProvider;
+ }
+}
diff --git a/vendor/blobt/generators/crud/default/views/_form.php b/vendor/blobt/generators/crud/default/views/_form.php
new file mode 100644
index 0000000..0720887
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/views/_form.php
@@ -0,0 +1,42 @@
+modelClass();
+$safeAttributes = $model->safeAttributes();
+if (empty($safeAttributes)) {
+ $safeAttributes = $model->attributes();
+}
+
+echo "
+
+use yii\helpers\Html;
+use yii\widgets\ActiveForm;
+
+/* @var $this yii\web\View */
+/* @var $model = ltrim($generator->modelClass, '\\') ?> */
+/* @var $form yii\widgets\ActiveForm */
+?>
+
+
diff --git a/vendor/blobt/generators/crud/default/views/_search.php b/vendor/blobt/generators/crud/default/views/_search.php
new file mode 100644
index 0000000..b65231f
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/views/_search.php
@@ -0,0 +1,49 @@
+
+
+use yii\helpers\Html;
+use yii\widgets\ActiveForm;
+
+/* @var $this yii\web\View */
+/* @var $model = ltrim($generator->searchModelClass, '\\') ?> */
+/* @var $form yii\widgets\ActiveForm */
+?>
+
+
+
+ = "$form = ActiveForm::begin([
+ 'action' => ['index'],
+ 'method' => 'get',
+enablePjax): ?>
+ 'options' => [
+ 'data-pjax' => 1
+ ],
+
+ ]); ?>
+
+getColumnNames() as $attribute) {
+ if (++$count < 6) {
+ echo " = " . $generator->generateActiveSearchField($attribute) . " ?>\n\n";
+ } else {
+ echo " generateActiveSearchField($attribute) . " ?>\n\n";
+ }
+}
+?>
+
+ = "= " ?>Html::submitButton(= $generator->generateString('Search') ?>, ['class' => 'btn btn-primary']) ?>
+ = "= " ?>Html::resetButton(= $generator->generateString('Reset') ?>, ['class' => 'btn btn-outline-secondary']) ?>
+
+
+ = "ActiveForm::end(); ?>
+
+
diff --git a/vendor/blobt/generators/crud/default/views/create.php b/vendor/blobt/generators/crud/default/views/create.php
new file mode 100644
index 0000000..819bb3a
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/views/create.php
@@ -0,0 +1,29 @@
+
+
+use yii\helpers\Html;
+
+/* @var $this yii\web\View */
+/* @var $model = ltrim($generator->modelClass, '\\') ?> */
+
+$this->title = = $generator->generateString('Create ' . Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>;
+$this->params['breadcrumbs'][] = ['label' => = $generator->generateString(Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass)))) ?>, 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= "= " ?>Html::encode($this->title) ?>
+
+ = "= " ?>$this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/vendor/blobt/generators/crud/default/views/index.php b/vendor/blobt/generators/crud/default/views/index.php
new file mode 100644
index 0000000..066274a
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/views/index.php
@@ -0,0 +1,105 @@
+generateUrlParams();
+$nameAttribute = $generator->getNameAttribute();
+
+echo "
+
+use yii\helpers\Html;
+use blobt\grid\GridView;
+
+/* @var $this yii\web\View */
+= !empty($generator->searchModelClass) ? "/* @var \$searchModel " . ltrim($generator->searchModelClass, '\\') . " */\n" : '' ?>
+/* @var $dataProvider yii\data\ActiveDataProvider */
+
+$this->title = = $generator->generateString(Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass)))) ?>;
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
+ = "= " ?>
+ GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'filter' => $this->render("_search", ['model' => $searchModel]),
+ batch' => [
+ [
+ "label" => "删除",
+ "url" => "/category/deletes"
+ ],
+ ],
+ 'columns' => [
+
+ ],
+ ]);
+ = "?>" ?>
+
+
+
+
+
+
+
+
= "= " ?>Html::encode($this->title) ?>
+
+
+= "= " ?>Html::a(= $generator->generateString('Create ' . Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>, ['create'], ['class' => 'btn btn-success']) ?>
+
+
+ = $generator->enablePjax ? " \n" : '' ?>
+ searchModelClass)): ?>
+ = " indexWidgetType === 'grid' ? "// " : "") ?>echo $this->render('_search', ['model' => $searchModel]); ?>
+
+
+ indexWidgetType === 'grid'): ?>
+ = "= " ?>GridView::widget([
+ 'dataProvider' => $dataProvider,
+ = !empty($generator->searchModelClass) ? "'filterModel' => \$searchModel,\n 'columns' => [\n" : "'columns' => [\n"; ?>
+ ['class' => 'yii\grid\SerialColumn'],
+
+ getTableSchema()) === false) {
+ foreach ($generator->getColumnNames() as $name) {
+ if (++$count < 6) {
+ echo " '" . $name . "',\n";
+ } else {
+ echo " //'" . $name . "',\n";
+ }
+ }
+ } else {
+ foreach ($tableSchema->columns as $column) {
+ $format = $generator->generateColumnFormat($column);
+ if (++$count < 6) {
+ echo " '" . $column->name . ($format === 'text' ? "" : ":" . $format) . "',\n";
+ } else {
+ echo " //'" . $column->name . ($format === 'text' ? "" : ":" . $format) . "',\n";
+ }
+ }
+ }
+ ?>
+
+ ['class' => 'yii\grid\ActionColumn'],
+ ],
+ ]); ?>
+
+ = "= " ?>ListView::widget([
+ 'dataProvider' => $dataProvider,
+ 'itemOptions' => ['class' => 'item'],
+ 'itemView' => function ($model, $key, $index, $widget) {
+ return Html::a(Html::encode($model->= $nameAttribute ?>), ['view', = $urlParams ?>]);
+ },
+ ]) ?>
+
+
+= $generator->enablePjax ? " \n" : '' ?>
+
+
diff --git a/vendor/blobt/generators/crud/default/views/update.php b/vendor/blobt/generators/crud/default/views/update.php
new file mode 100644
index 0000000..31af000
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/views/update.php
@@ -0,0 +1,40 @@
+generateUrlParams();
+$modelClassName = Inflector::camel2words(StringHelper::basename($generator->modelClass));
+$nameAttributeTemplate = '$model->' . $generator->getNameAttribute();
+$titleTemplate = $generator->generateString('Update ' . $modelClassName . ': {name}', ['name' => '{nameAttribute}']);
+if ($generator->enableI18N) {
+ $title = strtr($titleTemplate, ['\'{nameAttribute}\'' => $nameAttributeTemplate]);
+} else {
+ $title = strtr($titleTemplate, ['{nameAttribute}\'' => '\' . ' . $nameAttributeTemplate]);
+}
+
+echo "
+
+use yii\helpers\Html;
+
+/* @var $this yii\web\View */
+/* @var $model = ltrim($generator->modelClass, '\\') ?> */
+
+$this->title = = $title ?>;
+$this->params['breadcrumbs'][] = ['label' => = $generator->generateString(Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass)))) ?>, 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->= $generator->getNameAttribute() ?>, 'url' => ['view', = $urlParams ?>]];
+$this->params['breadcrumbs'][] = = $generator->generateString('Update') ?>;
+?>
+
+
+
= '= ' ?>Html::encode($this->title) ?>
+
+ = '= ' ?>$this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/vendor/blobt/generators/crud/default/views/view.php b/vendor/blobt/generators/crud/default/views/view.php
new file mode 100644
index 0000000..ec6d8d2
--- /dev/null
+++ b/vendor/blobt/generators/crud/default/views/view.php
@@ -0,0 +1,58 @@
+generateUrlParams();
+
+echo "
+
+use yii\helpers\Html;
+use yii\widgets\DetailView;
+
+/* @var $this yii\web\View */
+/* @var $model = ltrim($generator->modelClass, '\\') ?> */
+
+$this->title = $model->= $generator->getNameAttribute() ?>;
+$this->params['breadcrumbs'][] = ['label' => = $generator->generateString(Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass)))) ?>, 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+\yii\web\YiiAsset::register($this);
+?>
+
+
+
= "= " ?>Html::encode($this->title) ?>
+
+
+ = "= " ?>Html::a(= $generator->generateString('Update') ?>, ['update', = $urlParams ?>], ['class' => 'btn btn-primary']) ?>
+ = "= " ?>Html::a(= $generator->generateString('Delete') ?>, ['delete', = $urlParams ?>], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => = $generator->generateString('Are you sure you want to delete this item?') ?>,
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = "= " ?>DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+getTableSchema()) === false) {
+ foreach ($generator->getColumnNames() as $name) {
+ echo " '" . $name . "',\n";
+ }
+} else {
+ foreach ($generator->getTableSchema()->columns as $column) {
+ $format = $generator->generateColumnFormat($column);
+ echo " '" . $column->name . ($format === 'text' ? "" : ":" . $format) . "',\n";
+ }
+}
+?>
+ ],
+ ]) ?>
+
+