Вот код:
Код: Выделить всё
<?php
namespace app\controllers;
use Yii;
use app\models\User;
use app\models\Rabota;
use app\models\Resume;
class CabinetController extends AppController
{
public function actionIndex($id){
if(Yii::$app->user->isGuest){
Yii::$app->getResponse()->redirect('/site/login');
}
if(!Yii::$app->user->isGuest && Yii::$app->user->id == Yii::$app->request->get('id')) {
$cab = User::findOne($id);
if(empty($cab)){
throw new \yii\web\HttpException(404, 'Такого пользователя нет.');
}
if (isset($_POST['login-formd'])) {
if ($cab->load(Yii::$app->request->post()) && $cab->save()) {
Yii::$app->session->setFlash('FormSubmittedC');
return $this->refresh();
}
}
$modelz = User::findOne($id);
if (isset($_POST['login-formd_pass'])) {
$modelz->password = \Yii::$app->security->generatePasswordHash($modelz->password);
$modelz->save();
if ($modelz->load(Yii::$app->request->post())) {
Yii::$app->session->setFlash('FormSubmitted_pass');
return $this->refresh();
}
}
$works = Rabota::find()->where(['user_id' => $id])->all();
$resumes = Resume::find()->where(['user_id' => $id])->all();
}else{
throw new \yii\web\HttpException(404, 'Страница не найдена');
}
$this->setMeta($cab->name .' | Aбхаз-работа.ру - сайт поиска работы №1 в Абхазии', $cab->name.' | Aбхаз-работа.ру - сайт поиска работы №1 в Абхазии', $cab->name.' | Aбхаз-работа.ру - сайт поиска работы №1 в Абхазии');
return $this->render('index', compact('cab', 'modelz', 'works', 'resumes'));
}
}
Код: Выделить всё
$modelz = User::findOne($id);
if (isset($_POST['login-formd_pass'])) {
$modelz->password = \Yii::$app->security->generatePasswordHash($modelz->password);
$modelz->save();
if ($modelz->load(Yii::$app->request->post())) {
Yii::$app->session->setFlash('FormSubmitted_pass');
return $this->refresh();
}
}
Код: Выделить всё
<?php $forms = ActiveForm::begin([
'id' => 'login-formd_pass',
]); ?>
<?php echo $forms->field($modelz, 'password', [
'inputOptions' => ['class' => 'inp2']
])->textInput()->input('password', ['placeholder' => 'Новый пароль:', 'value' => ''])->label(false); ?>
<?= Html::submitButton('Изменить', ['class' => 'bt_feed', 'name' => 'login-formd_pass', 'form' => 'login-formd_pass']) ?>
<?php ActiveForm::end(); ?>
Модель:
Код: Выделить всё
<?php
namespace app\models;
use yii\db\ActiveRecord;
class User extends ActiveRecord implements \yii\web\IdentityInterface
{
public static function tableName(){
return 'user';
}
public function rules()
{
return [
[['username', 'password', 'name', 'surname', 'otchestvo', 'sity'], 'required'],
[['name', 'surname', 'sity', 'date', 'phone', 'phone2', 'otchestvo'], 'string'],
[['sex'], 'integer'],
[['username'], 'email'],
['username', 'unique'],
];
}
public function attributeLabels()
{
return [
'username' => 'E-mail',
'password' => 'Пароль',
'name' => 'Имя',
'surname' => 'Фамилия',
'otchestvo' => 'Отчество',
'sity' => 'Город',
'sex' => 'Пол',
'date' => 'Дата рождения',
'phone' => 'Телефон',
'phone2' => 'Телефон',
];
}
public static function findIdentity($id)
{
return static::findOne($id);
}
public static function findIdentityByAccessToken($token, $type = null)
{
}
public static function findByUsername($username)
{
return static::findOne(['username' => $username]);
}
public function getId()
{
return $this->id;
}
public function getAuthKey()
{
return $this->auth_key;
}
public function validateAuthKey($authKey)
{
return $this->auth_key === $authKey;
}
public function validatePassword($password)
{
return \Yii::$app->security->validatePassword($password, $this->password);
}
public function setPassword($password)
{
$this->password = \Yii::$app->security->generatePasswordHash($password);
}
public function generateAuthKey(){
$this->auth_key = \Yii::$app->security->generateRandomString();
}
public function create(){
return $this->save(false);
}
public static function generate(){
$chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP";
$max=10;
$size=StrLen($chars)-1;
$password=null;
while($max--) {
$password.=$chars[rand(0,$size)];
}
return $password;
}
}