namespace app\controllers;
+use Yii;
use yii\data\ActiveDataProvider;
use yii\filters\VerbFilter;
use yii\web\Controller;
*/
public function actionIndex()
{
+ $model = new StoresTypeList();
+ if ($this->request->isPost) {
+ if ($model->load($this->request->post()) && $model->validate()) {
+ $model->type_alias = strtolower(preg_replace('/[\s-]+/', '_', $model->type_name));
+
+ if ($model->save()) {
+ Yii::$app->session->setFlash('success', 'Тип магазина успешно сохранен.');
+ return $this->redirect(['index']);
+ }
+ }
+ }
+
$dataProvider = new ActiveDataProvider([
'query' => StoresTypeList::find(),
- /*
- 'pagination' => [
- 'pageSize' => 50
- ],
- 'sort' => [
- 'defaultOrder' => [
- 'id' => SORT_DESC,
- ]
- ],
- */
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
+ 'model' => $model,
]);
}
public function rules()
{
return [
- [['type_name', 'type_alias'], 'required'],
+ [['type_name'], 'required'],
[['created_at'], 'safe'],
+ [['type_name'], 'unique', 'message' => 'Название "{value}" уже существует.'],
[['type_name', 'type_alias', 'type_description'], 'string', 'max' => 255],
];
}
<?php
+use yii\widgets\ActiveForm;
+use yii\widgets\Pjax;
use yii_app\records\StoresTypeList;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\grid\ActionColumn;
use yii\grid\GridView;
-/** @var yii\web\View $this */
-/** @var yii\data\ActiveDataProvider $dataProvider */
+/* @var $this yii\web\View */
+/* @var $dataProvider yii\data\ActiveDataProvider */
+/* @var $model yii_app\records\StoresTypeList */
$this->title = 'Тип магазина';
$this->params['breadcrumbs'][] = $this->title;
<h1><?= Html::encode($this->title) ?></h1>
- <p>
- <?= Html::a('Создать', ['create'], ['class' => 'btn btn-success']) ?>
- </p>
+ <?php Pjax::begin(['enablePushState' => false]); ?>
+ <?php if (Yii::$app->session->hasFlash('success')): ?>
+ <div class="alert alert-success">
+ <?= Yii::$app->session->getFlash('success') ?>
+ </div>
+ <?php endif; ?>
+ <?php if (Yii::$app->session->hasFlash('error')): ?>
+ <div class="alert alert-danger">
+ <?= Yii::$app->session->getFlash('error') ?>
+ </div>
+ <?php endif; ?>
+ <div class="form-container mb-4 col-4">
+ <?php $form = ActiveForm::begin([
+ 'options' => ['data-pjax' => true],
+ ]); ?>
+
+ <?= $form->field($model, 'type_name')->textInput(['maxlength' => true])->label('Название типа') ?>
+
+ <?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
+
+ <?php ActiveForm::end(); ?>
+ </div>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'created_at',
[
'class' => ActionColumn::class,
- 'urlCreator' => function ($action, StoresTypeList $model, $key, $index, $column) {
+ 'urlCreator' => function ($action, $model, $key, $index, $column) {
return Url::toRoute([$action, 'id' => $model->id]);
- }
+ },
],
],
]); ?>
-
+ <?php Pjax::end(); ?>
</div>