Ich habe ein Tutorial Schritt für Schritt aus Tutorial From Youtobe versucht.Yii2, Nach Login Aber nicht zu Logout wechseln. und wie bekomme ich ID aus der Datenbank nach dem Login
Und Login war Erfolg. aber die Login-Label immer noch mit Label Login, nicht in Logout und einen Benutzernamen ändern.
Und ich habe nicht verstehen, wie
1. Yii::t('app','Nama Admin') in Admin class which implement IdentityInterface ?
2. Where is Yii::$app->user->isGuest in main.php ? or how to read this ?
unten zu lesen ist der Code.
Admin ist Benutzerklasse, die IdentityInterface implementiert.
public static function tableName()
{
return 'admin';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['namaAdmin', 'username', 'password', 'authKey'], 'required'],
[['namaAdmin', 'password'], 'string', 'max' => 20],
[['username'], 'string', 'max' => 25],
[['authKey'], 'string', 'max' => 50],
];
}
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'namaAdmin' => Yii::t('app','Nama Admin'),
'username' => Yii::t('app','Username'),
'password' => Yii::t('app','Password'),
'authKey' => Yii::t('app','Auth Key'),
];
}
und einige Verfahren ist das gleiche mit dem Video
einige Funktion auf Modell> login.php
public function login()
{
if ($this->validate()) {
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0);
}
return false;
}
/**
* Finds user by [[username]]
*
* @return User|null
*/
public function getUser()
{
if ($this->_user === false) {
$this->_user = Admin::findByUsername($this->username);
}
return $this->_user;
}
Anmeldung & Logout Aktion auf SiteControler
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
}
return $this->render('login', [
'model' => $model,
]);
}
public function actionLogout()
{
Yii::$app->user->logout();
return $this->goHome();
}
Label Login/Logout auf main.php
Yii::$app->user->isGuest ? (
['label' => 'Login', 'url' => ['/site/login']]
) : (
'<li>'
. Html::beginForm(['/site/logout'], 'post', ['class' => 'navbar-form'])
. Html::submitButton(
'Logout (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link']
)
. Html::endForm()
. '</li>'
)
Zeigen Sie Ihre 'var_dump (Yii :: $ app -> user-> isGuest); 'nach dem Login bitte. – Vitaly
Wenn guest .. yii :: $ app-> Benutzer-> ID wird false/0 zurückgeben, andernfalls; ID des Benutzers;) – Gogol
Huh plus du musst dir im Hauptverzeichnis/main-local informieren, welche Klasse du verwendest .. in der Komponente, hab benutzerdefiniert .. – Gogol