登録
詳細テンプレートで、frontend/index.php?r=site/signup ページに入ると、フレームワークの登録ページが表示されます
ユーザー名、電子メール、パスワードを入力して [サインアップ] をクリックした後、形式が間違っている場合は、frontend/models/SignuForm の rules() 関数によって予備検証が実行されます。すべての形式が正しいです。データは、frontend/controllers/SiteController の actionSignup() 関数に転送されます。この関数は、ユーザーが入力した登録情報を読み込みます。frontend/models/SignupForm のsignup() 関数です。
以下の引用文は説明機能です 本文中の具体的な内容は読まなくても全体に影響しません 折り込みテキスト機能がないため引用方法を使用しています 以下同様です
if (!$this->validate()) { return null; }
signup() 関数は、最初に yii2/base/Model の validate() 関数を呼び出します。検証
最初のステップは、frontend/models/SignuForm で rules() 関数を使用するときに、ユーザー入力
if ($clearErrors) { $this->clearErrors(); }
2 番目のステップでは、beforeValidate() 関数が beforeValidate イベントをトリガーし、true を返します
3 番目のステップでは、シナリオを設定します。デフォルトはデフォルトです
## 4 番目のステップでは、$attributeNames が null であるため、実行後に$attributeNames = $this->activeAttributes();
#データ テーブル user
#ユーザーはユーザー名、パスワード、電子メールを入力しました。Yii2 フレームワークは他のフィールドをどのように生成しますか?まず、password_hash を見てみましょう。SignupFrom のサインアップ関数でのパスワード生成は setPassword 関数です。 setPassword 関数は、yii2/base/Security 内の各ルールのgeneratePasswordHash 関数を呼び出します。
if (function_exists('password_hash')) { /** @noinspection PhpUndefinedConstantInspection */ return password_hash($password, PASSWORD_DEFAULT, ['cost' => $cost]); }
使用しているシステムが Windows ではない場合は、/dev/urandom を呼び出す必要があります。FreeBSD システムは特殊です。/dev/random を呼び出し、stream_set_read_buffer メソッドを呼び出して、 8 バイトの文字ファイル。生成後、fread 関数でファイル内の 32 バイトを読み取り、データを返します。
password_reset_token は、ユーザーの登録時には空です。ユーザーがパスワードを忘れて、ログイン ページで [リセット] をクリックしたときに生成されます。ユーザーが電子メールの送信後にパスワードをリセットするときの検証に使用されます。
ステータスは common/models/User で定義されます
const STATUS_DELETED = 0; const STATUS_ACTIVE = 10;
created_time と updated_time も common/models/ にありますUser の Behaviors() 関数で生成された
ユーザーのデータは、修飾されていることが検証され、フレームワークによって生成されたデータも加えて、データのユーザー テーブルに保存されます。
yii フレームワーク
以上がyiiへの登録方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。