* @copyright (c), Thread */ class ProfileController extends BaseUserSigInController { protected $model = Profile::class; public $title = "Profile"; public $defaultAction = 'index'; public $layout = "@app/layouts/user-profile"; /** * */ public function init() { parent::init(); $this->breadcrumbs = [ [ 'label' => Yii::t('user', 'Private Office'), ], [ 'label' => Yii::t('user', 'Profile'), ] ]; } /** * @return array */ public function behaviors() { return [ 'AccessControl' => [ 'class' => AccessControl::class, 'rules' => [ [ 'allow' => true, 'actions' => ['index', 'update'], 'roles' => ['@'], ], [ 'allow' => true, 'roles' => ['?'] ], [ 'allow' => false, ], ], ], ]; } /** * @return string */ public function actionIndex() { /** @var Profile $model */ $model = new $this->model; $model->setScenario('frontend'); $user = $model::findByUserId(Yii::$app->getUser()->id); return $this->render('index', [ 'model' => $user, ]); } /** * @return string */ public function actionUpdate() { // $this->breadcrumbs[] = [ 'label' => Yii::t('app', 'Update'), ]; // /** @var Profile $model */ $model = new $this->model; $model->setScenario('ownEdit'); $profile = $model::findByUserId(Yii::$app->getUser()->id); $profile->setScenario('ownEdit'); if ($profile->load(Yii::$app->getRequest()->post())) { $transaction = $profile::getDb()->beginTransaction(); try { $save = $profile->save(); if ($save) { $transaction->commit(); return $this->redirect(['index']); } else { $transaction->rollBack(); } } catch (Exception $e) { Yii::getLogger()->log($e->getMessage(), Logger::LEVEL_ERROR); $transaction->rollBack(); } } return $this->render('_form', [ 'model' => $profile, ]); } }