Di bagian sebelumnya kita telah mencoba menggunakan form SignUp untuk melakukan registrasi. Sekarang kita akan coba untuk memodifikasi form tersebut dengan menambahkan First Name dan Last Name.
1. Tambahkan kolom First Name dan Last Name pada tabel user dengan varchar(100).
2. Modifikasi file SignUpForm.php yang berada di folder /advanced/frontend/models dengan menambahkan variable public first_name dan last_name, serta modifikasi pada function rules().
1 2 3 4 5 6 7 |
class SignupForm extends Model { public $username; public $first_name; public $last_name; public $email; public $password; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public function rules() { return [ ['username', 'filter', 'filter' => 'trim'], ['username', 'required'], ['first_name', 'required'], ['last_name', 'required'], ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'], ['username', 'string', 'min' => 2, 'max' => 255], ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'], ['password', 'required'], ['password', 'string', 'min' => 6], ]; } |
3. Modifikasi form signup.php yang berada di folder /advanced/frontend/views/site dengan menambahkan input untuk First Name dan Last Name.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<div class="row"> <div class="col-lg-5"> <?php $form = ActiveForm::begin(['id' => 'form-signup']); ?> <?= $form->field($model, 'first_name') ?> <?= $form->field($model, 'last_name') ?> <?= $form->field($model, 'username') ?> <?= $form->field($model, 'email') ?> <?= $form->field($model, 'password')->passwordInput() ?> |
4. Kembali ke file SignupForm.php dan modifikasi function signup().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public function signup() { if ($this->validate()) { $user = new User(); $user->username = $this->username; $user->first_name = $this->first_name; $user->last_name = $this->last_name; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); if ($user->save()) { return $user; } } return null; } |
Silahkan coba untuk menambahkan first name dan last name.
Tutorial ini sebagai dokumentasi dan pembelajaran pribadi sekalian belajar terjemahin bahasa Inggris, dan siapa tahu bermanfaat buat orang lain. Sumber lengkapnya diambil dari Youtube DoingITEasy Channel.