diff --git a/.bowerrc b/.bowerrc
new file mode 100644
index 0000000..1669168
--- /dev/null
+++ b/.bowerrc
@@ -0,0 +1,3 @@
+{
+ "directory" : "vendor/bower"
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..346d3b2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,30 @@
+# yii console command
+/yii
+
+# phpstorm project files
+.idea
+
+# netbeans project files
+nbproject
+
+# zend studio for eclipse project files
+.buildpath
+.project
+.settings
+
+# windows thumbnail cache
+Thumbs.db
+
+# composer vendor dir
+/vendor
+
+# composer itself is not needed
+composer.phar
+
+# Mac DS_Store Files
+.DS_Store
+
+# phpunit itself is not needed
+phpunit.phar
+# local phpunit config
+/phpunit.xml
diff --git a/.htaccess b/.htaccess
index b1ced15..17d3b8c 100644
--- a/.htaccess
+++ b/.htaccess
@@ -1,5 +1,7 @@
+AddDefaultCharset utf-8
+
Options +FollowSymlinks
RewriteEngine On
@@ -10,6 +12,9 @@
RewriteBase /
# deal with admin first
+
+
+
RewriteRule ^storage/(.*)?$ /storage/$1 [L,PT]
RewriteCond %{REQUEST_URI} ^/(admin)
@@ -59,7 +64,7 @@
RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^.*$ frontend/web/index.php
+ RewriteRule ^.*$ frontend/web/index.php [L]
@@ -67,5 +72,4 @@
php_value upload_max_filesize 20M
php_value post_max_size 30M
- php_value error_reporting 22527
\ No newline at end of file
diff --git a/backend/controllers/SpecializationController.php b/backend/controllers/SpecializationController.php
new file mode 100644
index 0000000..821220c
--- /dev/null
+++ b/backend/controllers/SpecializationController.php
@@ -0,0 +1,124 @@
+ [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'delete' => ['POST'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Lists all Specialization models.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $searchModel = new SpecializationSearch();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Displays a single Specialization model.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionView($id)
+ {
+ return $this->render('view', [
+ 'model' => $this->findModel($id),
+ ]);
+ }
+
+ /**
+ * Creates a new Specialization model.
+ * If creation is successful, the browser will be redirected to the 'view' page.
+ * @return mixed
+ */
+ public function actionCreate()
+ {
+ $model = new Specialization();
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->specialization_id]);
+ } else {
+ return $this->render('create', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Updates an existing Specialization model.
+ * If update is successful, the browser will be redirected to the 'view' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionUpdate($id)
+ {
+ $model = $this->findModel($id);
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->specialization_id]);
+ } else {
+ return $this->render('update', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Deletes an existing Specialization model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionDelete($id)
+ {
+ $this->findModel($id)->delete();
+
+ return $this->redirect(['index']);
+ }
+
+ /**
+ * Finds the Specialization model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ * @param integer $id
+ * @return Specialization the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModel($id)
+ {
+ if (($model = Specialization::findOne($id)) !== null) {
+ return $model;
+ } else {
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+ }
+}
diff --git a/backend/controllers/UserInfoTestController.php b/backend/controllers/UserInfoTestController.php
new file mode 100644
index 0000000..98ac939
--- /dev/null
+++ b/backend/controllers/UserInfoTestController.php
@@ -0,0 +1,124 @@
+ [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'delete' => ['POST'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Lists all UserInfo models.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $searchModel = new UserSearch();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Displays a single UserInfo model.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionView($id)
+ {
+ return $this->render('view', [
+ 'model' => $this->findModel($id),
+ ]);
+ }
+
+ /**
+ * Creates a new UserInfo model.
+ * If creation is successful, the browser will be redirected to the 'view' page.
+ * @return mixed
+ */
+ public function actionCreate()
+ {
+ $model = new UserInfo();
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->user_info_id]);
+ } else {
+ return $this->render('create', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Updates an existing UserInfo model.
+ * If update is successful, the browser will be redirected to the 'view' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionUpdate($id)
+ {
+ $model = $this->findModel($id);
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->user_info_id]);
+ } else {
+ return $this->render('update', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Deletes an existing UserInfo model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionDelete($id)
+ {
+ $this->findModel($id)->delete();
+
+ return $this->redirect(['index']);
+ }
+
+ /**
+ * Finds the UserInfo model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ * @param integer $id
+ * @return UserInfo the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModel($id)
+ {
+ if (($model = UserInfo::findOne($id)) !== null) {
+ return $model;
+ } else {
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+ }
+}
diff --git a/backend/controllers/UserTestController.php b/backend/controllers/UserTestController.php
new file mode 100644
index 0000000..b6a9d76
--- /dev/null
+++ b/backend/controllers/UserTestController.php
@@ -0,0 +1,124 @@
+ [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'delete' => ['POST'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Lists all User models.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $searchModel = new UserSearch();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Displays a single User model.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionView($id)
+ {
+ return $this->render('view', [
+ 'model' => $this->findModel($id),
+ ]);
+ }
+
+ /**
+ * Creates a new User model.
+ * If creation is successful, the browser will be redirected to the 'view' page.
+ * @return mixed
+ */
+ public function actionCreate()
+ {
+ $model = new User();
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->id]);
+ } else {
+ return $this->render('create', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Updates an existing User model.
+ * If update is successful, the browser will be redirected to the 'view' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionUpdate($id)
+ {
+ $model = $this->findModel($id);
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->id]);
+ } else {
+ return $this->render('update', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Deletes an existing User model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionDelete($id)
+ {
+ $this->findModel($id)->delete();
+
+ return $this->redirect(['index']);
+ }
+
+ /**
+ * Finds the User model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ * @param integer $id
+ * @return User the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModel($id)
+ {
+ if (($model = User::findOne($id)) !== null) {
+ return $model;
+ } else {
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+ }
+}
diff --git a/backend/views/specialization/_form.php b/backend/views/specialization/_form.php
new file mode 100644
index 0000000..c05f706
--- /dev/null
+++ b/backend/views/specialization/_form.php
@@ -0,0 +1,24 @@
+
+
+
diff --git a/backend/views/specialization/_search.php b/backend/views/specialization/_search.php
new file mode 100644
index 0000000..b595af3
--- /dev/null
+++ b/backend/views/specialization/_search.php
@@ -0,0 +1,31 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'specialization_id') ?>
+
+ = $form->field($model, 'specialization_pid') ?>
+
+ = $form->field($model, 'specialization_name') ?>
+
+
+ = Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/backend/views/specialization/create.php b/backend/views/specialization/create.php
new file mode 100644
index 0000000..c37fe8e
--- /dev/null
+++ b/backend/views/specialization/create.php
@@ -0,0 +1,21 @@
+title = 'Create Specialization';
+$this->params['breadcrumbs'][] = ['label' => 'Specializations', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/views/specialization/index.php b/backend/views/specialization/index.php
new file mode 100644
index 0000000..82e07bc
--- /dev/null
+++ b/backend/views/specialization/index.php
@@ -0,0 +1,37 @@
+title = 'Specializations';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+ render('_search', ['model' => $searchModel]); ?>
+
+
+ = Html::a('Create Specialization', ['create'], ['class' => 'btn btn-success']) ?>
+
+ = GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'filterModel' => $searchModel,
+ 'columns' => [
+ ['class' => 'yii\grid\SerialColumn'],
+
+ 'specialization_id',
+ [
+ 'attribute' => 'specialization_parent_name',
+ 'value' => 'parent.specialization_name'
+ ],
+ 'specialization_name',
+
+ ['class' => 'yii\grid\ActionColumn'],
+ ],
+ ]); ?>
+
diff --git a/backend/views/specialization/update.php b/backend/views/specialization/update.php
new file mode 100644
index 0000000..3186ada
--- /dev/null
+++ b/backend/views/specialization/update.php
@@ -0,0 +1,21 @@
+title = 'Update Specialization: ' . ' ' . $model->specialization_id;
+$this->params['breadcrumbs'][] = ['label' => 'Specializations', 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->specialization_id, 'url' => ['view', 'id' => $model->specialization_id]];
+$this->params['breadcrumbs'][] = 'Update';
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/views/specialization/view.php b/backend/views/specialization/view.php
new file mode 100644
index 0000000..5f880cd
--- /dev/null
+++ b/backend/views/specialization/view.php
@@ -0,0 +1,37 @@
+title = $model->specialization_id;
+$this->params['breadcrumbs'][] = ['label' => 'Specializations', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+
+ = Html::a('Update', ['update', 'id' => $model->specialization_id], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Delete', ['delete', 'id' => $model->specialization_id], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => 'Are you sure you want to delete this item?',
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'specialization_id',
+ 'specialization_pid',
+ 'specialization_name',
+ ],
+ ]) ?>
+
+
diff --git a/common/config/main.php b/common/config/main.php
index 73c0b51..8ccd715 100755
--- a/common/config/main.php
+++ b/common/config/main.php
@@ -49,8 +49,8 @@ return [
]
],
],
- 'authManager' => [
- 'class' => 'yii\rbac\DbManager',
+ 'authManager' => [
+ 'class' => 'yii\rbac\DbManager',
],
//подключаем конфигурации API соц сетей для авторизации
@@ -151,7 +151,7 @@ return [
'clientSecret' => '...',
'clientPublic' => '...',
'title' => 'Odnoklas.',
- ],
+ ],
],
],
diff --git a/common/models/Specialization.php b/common/models/Specialization.php
new file mode 100644
index 0000000..147ee20
--- /dev/null
+++ b/common/models/Specialization.php
@@ -0,0 +1,56 @@
+ '0',],
+ [['specialization_name'], 'required'],
+ [['specialization_name'], 'string', 'max' => 255],
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function attributeLabels()
+ {
+ return [
+ 'specialization_id' => 'Specialization ID',
+ 'specialization_pid' => 'Specialization Pid',
+ 'specialization_name' => 'Specialization Name',
+ 'specialization_parent_name' => 'Specialization Parent Name',
+ ];
+ }
+
+
+ public function getParent()
+ {
+ return $this->hasOne(self::className(), ['specialization_id' => 'specialization_pid']);
+ }
+
+}
diff --git a/common/models/SpecializationSearch.php b/common/models/SpecializationSearch.php
new file mode 100644
index 0000000..3d258b7
--- /dev/null
+++ b/common/models/SpecializationSearch.php
@@ -0,0 +1,75 @@
+ $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
+ $query->andFilterWhere([
+ 'specialization_id' => $this->specialization_id,
+ 'specialization_pid' => !empty($this->specialization_parent_name) ? array_keys(Specialization::find()->select('specialization_id')->FilterWhere(['like', 'specialization_name',$this->specialization_parent_name])->asArray()->indexBy('specialization_id')->all()) : $this->specialization_parent_name
+ ]);
+
+ $query->andFilterWhere(['like', 'specialization_name', $this->specialization_name]);
+
+ return $dataProvider;
+ }
+}
diff --git a/console/migrations/m160202_084703_specialization.php b/console/migrations/m160202_084703_specialization.php
new file mode 100644
index 0000000..26e5dad
--- /dev/null
+++ b/console/migrations/m160202_084703_specialization.php
@@ -0,0 +1,23 @@
+createTable('{{%specialization}}', [
+ 'specialization_id' => $this->primaryKey(),
+ 'specialization_pid' => $this->integer(),
+ 'specialization_name' => $this->string(255)->notNull()
+ ], $tableOptions);
+
+ }
+
+ public function down()
+ {
+ $this->dropTable('{{%specialization}}');
+ }
+}
diff --git a/frontend/config/main.php b/frontend/config/main.php
index ffd01f1..bb12a84 100755
--- a/frontend/config/main.php
+++ b/frontend/config/main.php
@@ -18,7 +18,7 @@ return [
'modules' => [
],
- 'components' => [
+ 'components' => [
//'PageController'=>[
// 'class' => 'frontend\controllers\PageController'
//],
@@ -44,7 +44,7 @@ return [
'urlManager' => [
'baseUrl' => '/',
'enablePrettyUrl' => true,
- 'showScriptName' => false,
+ 'showScriptName' => false,
'rules' => [
'landing/' => 'landing/view',
]
diff --git a/frontend/views/views/testuser/_form.php b/frontend/views/views/testuser/_form.php
new file mode 100644
index 0000000..2fef732
--- /dev/null
+++ b/frontend/views/views/testuser/_form.php
@@ -0,0 +1,23 @@
+
+
+
diff --git a/frontend/views/views/testuser/_search.php b/frontend/views/views/testuser/_search.php
new file mode 100644
index 0000000..f7d9374
--- /dev/null
+++ b/frontend/views/views/testuser/_search.php
@@ -0,0 +1,49 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'id') ?>
+
+ = $form->field($model, 'username') ?>
+
+ = $form->field($model, 'lastname') ?>
+
+ = $form->field($model, 'firstname') ?>
+
+ = $form->field($model, 'middlename') ?>
+
+ field($model, 'auth_key') ?>
+
+ field($model, 'password_hash') ?>
+
+ field($model, 'password_reset_token') ?>
+
+ field($model, 'email') ?>
+
+ field($model, 'status') ?>
+
+ field($model, 'created_at') ?>
+
+ field($model, 'updated_at') ?>
+
+
+ = Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/frontend/views/views/testuser/create.php b/frontend/views/views/testuser/create.php
new file mode 100644
index 0000000..a71baf7
--- /dev/null
+++ b/frontend/views/views/testuser/create.php
@@ -0,0 +1,21 @@
+title = 'Create User';
+$this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/frontend/views/views/testuser/index.php b/frontend/views/views/testuser/index.php
new file mode 100644
index 0000000..3875454
--- /dev/null
+++ b/frontend/views/views/testuser/index.php
@@ -0,0 +1,43 @@
+title = 'Users';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+ render('_search', ['model' => $searchModel]); ?>
+
+
+ = Html::a('Create User', ['create'], ['class' => 'btn btn-success']) ?>
+
+ = GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'filterModel' => $searchModel,
+ 'columns' => [
+ ['class' => 'yii\grid\SerialColumn'],
+
+ 'id',
+ 'username',
+ 'lastname',
+ 'firstname',
+ 'middlename',
+ // 'auth_key',
+ // 'password_hash',
+ // 'password_reset_token',
+ // 'email:email',
+ // 'status',
+ // 'created_at',
+ // 'updated_at',
+
+ ['class' => 'yii\grid\ActionColumn'],
+ ],
+ ]); ?>
+
diff --git a/frontend/views/views/testuser/update.php b/frontend/views/views/testuser/update.php
new file mode 100644
index 0000000..cad4a75
--- /dev/null
+++ b/frontend/views/views/testuser/update.php
@@ -0,0 +1,21 @@
+title = 'Update User: ' . ' ' . $model->id;
+$this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->id, 'url' => ['view', 'id' => $model->id]];
+$this->params['breadcrumbs'][] = 'Update';
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/frontend/views/views/testuser/view.php b/frontend/views/views/testuser/view.php
new file mode 100644
index 0000000..991b74a
--- /dev/null
+++ b/frontend/views/views/testuser/view.php
@@ -0,0 +1,46 @@
+title = $model->id;
+$this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+
+ = Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Delete', ['delete', 'id' => $model->id], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => 'Are you sure you want to delete this item?',
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'id',
+ 'username',
+ 'lastname',
+ 'firstname',
+ 'middlename',
+ 'auth_key',
+ 'password_hash',
+ 'password_reset_token',
+ 'email:email',
+ 'status',
+ 'created_at',
+ 'updated_at',
+ ],
+ ]) ?>
+
+
diff --git a/frontend/views/views/testuserinfo/_form.php b/frontend/views/views/testuserinfo/_form.php
new file mode 100644
index 0000000..b995ecd
--- /dev/null
+++ b/frontend/views/views/testuserinfo/_form.php
@@ -0,0 +1,55 @@
+
+
+
diff --git a/frontend/views/views/testuserinfo/_search.php b/frontend/views/views/testuserinfo/_search.php
new file mode 100644
index 0000000..faa7260
--- /dev/null
+++ b/frontend/views/views/testuserinfo/_search.php
@@ -0,0 +1,61 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'user_id') ?>
+
+ = $form->field($model, 'view_count') ?>
+
+ = $form->field($model, 'busy') ?>
+
+ = $form->field($model, 'date_visit') ?>
+
+ = $form->field($model, 'experience') ?>
+
+ field($model, 'rank') ?>
+
+ field($model, 'salary') ?>
+
+ field($model, 'job') ?>
+
+ field($model, 'location') ?>
+
+ field($model, 'soft') ?>
+
+ field($model, 'user_info_id') ?>
+
+ field($model, 'guarantee') ?>
+
+ field($model, 'contract') ?>
+
+ field($model, 'estimate') ?>
+
+ field($model, 'purchase') ?>
+
+ field($model, 'delivery') ?>
+
+ field($model, 'prepayment') ?>
+
+ field($model, 'about') ?>
+
+
+ = Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/frontend/views/views/testuserinfo/create.php b/frontend/views/views/testuserinfo/create.php
new file mode 100644
index 0000000..5213448
--- /dev/null
+++ b/frontend/views/views/testuserinfo/create.php
@@ -0,0 +1,21 @@
+title = 'Create User Info';
+$this->params['breadcrumbs'][] = ['label' => 'User Infos', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/frontend/views/views/testuserinfo/index.php b/frontend/views/views/testuserinfo/index.php
new file mode 100644
index 0000000..4de5bee
--- /dev/null
+++ b/frontend/views/views/testuserinfo/index.php
@@ -0,0 +1,49 @@
+title = 'User Infos';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+ render('_search', ['model' => $searchModel]); ?>
+
+
+ = Html::a('Create User Info', ['create'], ['class' => 'btn btn-success']) ?>
+
+ = GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'filterModel' => $searchModel,
+ 'columns' => [
+ ['class' => 'yii\grid\SerialColumn'],
+
+ 'user_id',
+ 'view_count',
+ 'busy',
+ 'date_visit',
+ 'experience',
+ // 'rank',
+ // 'salary',
+ // 'job',
+ // 'location',
+ // 'soft',
+ // 'user_info_id',
+ // 'guarantee',
+ // 'contract',
+ // 'estimate',
+ // 'purchase',
+ // 'delivery',
+ // 'prepayment',
+ // 'about:ntext',
+
+ ['class' => 'yii\grid\ActionColumn'],
+ ],
+ ]); ?>
+
diff --git a/frontend/views/views/testuserinfo/update.php b/frontend/views/views/testuserinfo/update.php
new file mode 100644
index 0000000..bb8a173
--- /dev/null
+++ b/frontend/views/views/testuserinfo/update.php
@@ -0,0 +1,21 @@
+title = 'Update User Info: ' . ' ' . $model->user_info_id;
+$this->params['breadcrumbs'][] = ['label' => 'User Infos', 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->user_info_id, 'url' => ['view', 'id' => $model->user_info_id]];
+$this->params['breadcrumbs'][] = 'Update';
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/frontend/views/views/testuserinfo/view.php b/frontend/views/views/testuserinfo/view.php
new file mode 100644
index 0000000..9a96b19
--- /dev/null
+++ b/frontend/views/views/testuserinfo/view.php
@@ -0,0 +1,52 @@
+title = $model->user_info_id;
+$this->params['breadcrumbs'][] = ['label' => 'User Infos', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+
+ = Html::a('Update', ['update', 'id' => $model->user_info_id], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Delete', ['delete', 'id' => $model->user_info_id], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => 'Are you sure you want to delete this item?',
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'user_id',
+ 'view_count',
+ 'busy',
+ 'date_visit',
+ 'experience',
+ 'rank',
+ 'salary',
+ 'job',
+ 'location',
+ 'soft',
+ 'user_info_id',
+ 'guarantee',
+ 'contract',
+ 'estimate',
+ 'purchase',
+ 'delivery',
+ 'prepayment',
+ 'about:ntext',
+ ],
+ ]) ?>
+
+
diff --git a/storage/.htaccess b/storage/.htaccess
new file mode 100644
index 0000000..0a379a4
--- /dev/null
+++ b/storage/.htaccess
@@ -0,0 +1,6 @@
+RewriteEngine on
+RewriteBase /
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+
+RewriteRule . index.php
diff --git a/storage/images/731f3def4141ee16d28c15219e46e5d2297.jpg b/storage/images/731f3def4141ee16d28c15219e46e5d2297.jpg
new file mode 100755
index 0000000..a86b541
Binary files /dev/null and b/storage/images/731f3def4141ee16d28c15219e46e5d2297.jpg differ
diff --git a/storage/index.php b/storage/index.php
deleted file mode 100644
index 0681616..0000000
--- a/storage/index.php
+++ /dev/null
@@ -1,8 +0,0 @@
-