%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,mail,shell_exec,system,proc_open,popen,ini_alter,dl,proc_close,curl_exec,curl_multi_exec,readfile,parse_ini_file,escapeshellarg,escapeshellcmd,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,mail,php_uname,phpinfo MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/water/vendor/dektrium/yii2-user/docs/ |
Upload File : |
# Adding fields from Profile to the registration form Sometimes you may need to add some fields from Profile to the registration form and this article will help you. ## Override the registration form model Let's start with overriding the registration form model: ```php namespace app\models; use dektrium\user\models\Profile; use dektrium\user\models\RegistrationForm as BaseRegistrationForm; use dektrium\user\models\User; class RegistrationForm extends BaseRegistrationForm { /** * Add a new field * @var string */ public $name; /** * @inheritdoc */ public function rules() { $rules = parent::rules(); $rules[] = ['name', 'required']; $rules[] = ['name', 'string', 'max' => 255]; return $rules; } /** * @inheritdoc */ public function attributeLabels() { $labels = parent::attributeLabels(); $labels['name'] = \Yii::t('user', 'Name'); return $labels; } /** * @inheritdoc */ public function loadAttributes(User $user) { // here is the magic happens $user->setAttributes([ 'email' => $this->email, 'username' => $this->username, 'password' => $this->password, ]); /** @var Profile $profile */ $profile = \Yii::createObject(Profile::className()); $profile->setAttributes([ 'name' => $this->name, ]); $user->setProfile($profile); } } ``` ## Overriding the registration form view Last thing you need to do is overriding the registration form view: ```php <?php use yii\helpers\Html; use yii\widgets\ActiveForm; /** * @var yii\web\View $this * @var yii\widgets\ActiveForm $form * @var dektrium\user\models\User $user */ $this->title = Yii::t('user', 'Sign up'); $this->params['breadcrumbs'][] = $this->title; ?> <div class="row"> <div class="col-md-4 col-md-offset-4"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><?= Html::encode($this->title) ?></h3> </div> <div class="panel-body"> <?php $form = ActiveForm::begin([ 'id' => 'registration-form', ]); ?> <?= $form->field($model, 'name') ?> <?= $form->field($model, 'email') ?> <?= $form->field($model, 'username') ?> <?= $form->field($model, 'password')->passwordInput() ?> <?= Html::submitButton(Yii::t('user', 'Sign up'), ['class' => 'btn btn-success btn-block']) ?> <?php ActiveForm::end(); ?> </div> </div> <p class="text-center"> <?= Html::a(Yii::t('user', 'Already registered? Sign in!'), ['/user/security/login']) ?> </p> </div> </div> ```