โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะ ะพะฑัะตะผ, ัะตัะตะท ะผะธะณัะฐัะธั
$this->insert('{{%user}}', [
'id' => 1,
'nickname' => 'admin',
'email' => 'admin@example.com',
'auth_key' => Yii::$app->security->generateRandomString(),
'password_hash' => Yii::$app->security->generatePasswordHash('admin'),
]);
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะ ัะฐะบะพะผ ะดัั
ะต
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะพะฑัะทะฐัะตะปัะฝัะต ะฟะพะปั ัะฐะผ ะฝะฐะบะธะฝะตัั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ั ะฝะต ะฒะธะดะตะป ัะฒะพั ะผะพะดะตะปั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะผะธะณัะฐัะธั ัะพะทะดะฐัั ั ะบะพะฝัะพะปะธ php yii migrate create add_admin_user
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะทะฐะฟัััะธัั php yii migrate/up
darkwoolf
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะผะพะถะฝะพ ะธ ััั, ะฒ ะผะตัะพะดะต up
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ัะฐะบ
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฃ ัะตะฑั ะธะดะตะฝัะธัะธัะธััััะธะน ะฝะต nickname ะฐ login ัะบะพัะตะต ะฒัะตะณะพ?
darkwoolf
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะัะปะธ ะดะฐ, ัะพ ะทะดะตัั ะธัะฟัะฐะฒั ะฝะฐ
'login' => $username,
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
'nickname' => $username
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฒ ะผะธะณัะฐัะธั
$this->insert('{{%user}}', [
'id' => 1,
'login' => 'admin',
'email' => 'admin@example.com',
'auth_key' => Yii::$app->security->generateRandomString(),
'password_hash' => Yii::$app->security->generatePasswordHash('admin'),
]);
darkwoolf
ะฐ ะผะพะถะตั ะธ ะฝะตั
darkwoolf
ะธะฑะพ ัะฐั ะฒะพั ัะฐะบ ะฒะพะพะฑัะต
darkwoolf
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฃ ัะตะฑั login, email, nickname
darkwoolf
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ััะพ-ัะพ ะธะท ััะพะณะพ ะดะพะปะถะฝะพ ะธะดะตะฝัะธัะธัะธัะพะฒะฐัั ะฟะพะปัะทะพะฒะฐัะตะปั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะัะปะธ nickname ะฟัะตะฒะดะพะฝะธะผ (ะดะปั ะฟัะฑะปะธะบะธ) ัะพ ัะบะพัะตะต ะฟัะพะฒะตัะบะฐ ะดะพะปะถะฝะฐ ะฑััั ะฟะพ login ะธะปะธ email. ะัะปะธ email ัะฝะธะบะฐะปัะฝัะน ัะพ login ะผะพะถะฝะพ ะฟัะพััะพ ัะฟัะฐะทะดะฝะธัั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะธ ะธัะบะฐัั ะฟะพ ะผัะปั
darkwoolf
ะฟะพะฟัะพะฑะพะฒะฐัั ะฒะตะทะดะต ะทะฐะผะตะฝะธัั ะฝะฐ ะตะผะตะนะป?
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฝั ะธะปะธ ะพััะฐะฒะธัั ะดะปั "ะฟะพะปัะทะพะฒะฐัะตะปะตะน" ะบะพะผั ะปะตะฝั ะผัะปะพ ะฒ ัะพัะผั ะฐะฒัะพัะธะทะฐัะธะธ ะฒะฒะพะดะธัั)
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฝะต ะฒะตะทะดะต
darkwoolf
darkwoolf
darkwoolf
ั ะตะผะตะนะปะพะผ ะฝะต ัะฐะฑะพัะฐะตั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ัะพัะผะฐ ะฐะฒัะพัะธะทะฐัะธะธ, ะฝะฐะดะพ ะฟะพะปะต ะฝะฐ email ัะผะตะฝะธัั, ะฒ User ะผะพะดะตะปะธ ะดะพะฑะฐะฒะธัั ะผะตัะพะด
/**
* Finds user by email
*
* @param string $email
* @return static|null
*/
public static function findByEmail($email)
{
return static::findOne(['email' => $email, 'status' => self::STATUS_ACTIVE]);
}
ะฒ ะผะพะดะตะปะธ ะฒ findUser() ะทะฐะผะตะฝะธัั byUsername ะฝะฐ
if ($this->_user === false) {
$this->_user = User::findByEmail($this->email);
}
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะธ ะฒ ัะพัะผะต
public $username;
ะทะฐะผะตะฝะธัั ะฝะฐ
public $email;
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะธ ะฒ ัะพัะผะต ะฒ rules() ะฟะพะผะตะฝััั
// Username and password are both required
[['username', 'password'], 'required'],
ะฝะฐ
// email and password are both required
[['email', 'password'], 'required'],
darkwoolf
ั ะผะตะฝั ะฝะตัั ะผะตัะพะดะฐ `findByEmail`ะะฝะต ะตะณะพ ัะพะทะดะฐัั?
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะผะพะถะตัั ะดะพะฑะฐะฒะธัั ะฟะพะด findByUsername
darkwoolf
darkwoolf
darkwoolf
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะัะปะธ ะฟะพ ัะทะตัะฝะตะนะผั ะฝะต ะฑัะดะตัั ะฐะฒัะพัะธะทะพะฒัะฒะฐัั, ัะพ ััะพ ะปะธัะฝะตะต
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะะพะถะฝะพ ัะดะฐะปะธัั ะผะตัะพะด
darkwoolf
ะผะฝะต ัะพะปัะบะพ ััะพะฑั ั ะผะพะณ
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะะธะถะต ะฒ getUser ะณะปะฐะฒะฝะพะต ะทะฐะผะตะฝะธัั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ัะฝะพัะธ, getUser ะฟะพะฟัะฐะฒะธะป?
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฒ LoginForm
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะธ ะฒัั form.php ัะบะพัะตะต ะฒัะตะณะพ
darkwoolf
ะธะปะธ ั ััะพ-ัะพ ะฟัะพะฟัััะธะป
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฃะดะฐะปะธะป ะผะตัะพะด fibdByUseNa*?
darkwoolf
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะะฐะฟัััะธ, ะฟะพัะผะพััะธ ัะฐะผ ะพัะธะฑะบั ะบะธะฝะตั ะณะดะต ะฒัะทะพะฒ
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะ ะฒะพะพะฑัะต, ะตััั ะผะตัะพะด
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะะพั ะถะต ะฒัะทะพะฒ
darkwoolf
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
6 ัััะพะบะฐ ัะฝะธะทั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะั, ัั ะฝะต ะทะฐะผะตะฝะธะป username ะฝะฐ email
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
public $email;
ะฒะผะตััะพ
publick $username;
darkwoolf
ะฏ ะฟะพะฝัะป
darkwoolf
darkwoolf
ะธ ะฒ getUSer?
darkwoolf
ะธ ะฟะพัะพะผ
darkwoolf
ะตัะปะธ ัะฐะผ ั ะฝะธะถะฝะธะผ ะฟะพะดัััะบะธะฒะฐะฝะธะต ัะพ ัะพะถะต ะตะณะพ ะฟะธัะฐัั?
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะดะฐ ะธ ะทะดะตัั ะทะฐะผะตะฝะธัั findUserByUsername ะฝะฐ findUserByEmail ะธ $this->username ะฝะฐ $this->email
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะธ ะฒัะต, ะดะพะปะถะฝะพ ัะฐะฑะพัะฐัั
darkwoolf
models/loginForm.php
darkwoolf
https://hastebin.com/cadulefuvi.xml
darkwoolf
darkwoolf
darkwoolf
ะฐะฐะฐ
darkwoolf
ัะฐะผ ะบะฐะถะธัั ะฒ 76 ัััะพะบะต
darkwoolf
ะฒ LoginForm $this->email = User::findUserByEmail($this->email);
darkwoolf
ะญัะพ ะถะต ะฝะต ะฟัะฐะฒะธะปัะฝะพ ััะพ ัะฐะผ ะพะฑะปะฐััั ะทะฝะฐัะตะฝะธะน User?
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
$this->_user ะถะต ะฑัะปะพ
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะฝะต ะฝะฐะดะพ ะผะตะฝััั
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
$this->_user = User::find***
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะธ ัััะพะบะพะน ะฒััะต
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
ะธ ะดะฒัะผั ัััะพะบะฐะผะธ ะฝะธะถะต
โ๏ธ ๐ฝ๐๐๐๐๐๐ฝ๐๐๐๐๐๐
if ($this->_user === false) {
$this->_user = User::findUserByEmail($this->email);
}
return $this->_user;