나는 미쳐 가기 전에 나를 도울 수 있기를 바랍니다. 사용자를 로그인하려고합니다. 이는YII2 - Author
\yii::$app->user->login
후 actionLogin
public function actionLogin() {
$model = new User();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$arrPost = Yii::$app->request->post();
$identity = User::findOne(['email'=>$arrPost['User']['email'],'password'=>$arrPost['User']['password']]);
$identity->id = $identity->getAttribute('id');
$identity->last_name = $identity->getAttribute('last_name');
$identity->first_name = $identity->getAttribute('first_name');
$identity->admin = $identity->getAttribute('admin');
$identity->address = $identity->getAttribute('address');
$identity->ministry = $identity->getAttribute('ministry');
\yii::$app->user->login($identity,86400);
return $this->redirect(Url::to(['app/index']));
} else {
// either the page is initially displayed or there is some validation error
return $this->render("@app/forms/user/login", ['model' => $model]);
}
}
나는 위해서 var_dump를하고 있어요 경우
이다 나는 다음과 같은 덤프
당신이 볼object(app\models\User)#88 (17) { ["id"]=> int(1) ["first_name"]=> string(12) "Christianfds" ["last_name"]=> string(7) "Köster" ["email"]=> NULL ["admin"]=> bool(true) ["password"]=> NULL ["address"]=> string(16) "Lieber Christian" ["ministry"]=> string(6) "" ["auth_key"]=> NULL ["_attributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(1) ["first_name"]=> string(12) "Christianfds" ["last_name"]=> string(7) "Köster" ["email"]=> string(25) "[email protected]" ["admin"]=> bool(true) ["password"]=> string(5) "chris" ["address"]=> string(16) "Lieber Christian" ["ministry"]=> string(6) "Diakon" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(1) ["first_name"]=> string(12) "Christianfds" ["last_name"]=> string(7) "Köster" ["email"]=> string(25) "[email protected]" ["admin"]=> bool(true) ["password"]=> string(5) "chris" ["address"]=> string(16) "Lieber Christian" ["ministry"]=> string(6) "Diakon" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } }
있어, 아이디, FIRST_NAME의 필드, last_name 등이 채워집니다.
object(app\models\User)#93 (17) { ["id"]=> NULL ["first_name"]=> NULL ["last_name"]=> NULL ["email"]=> NULL ["admin"]=> NULL ["password"]=> NULL ["address"]=> NULL ["ministry"]=> NULL ["auth_key"]=> NULL ["_attributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(1) ["first_name"]=> string(12) "Christianfds" ["last_name"]=> string(7) "Koester" ["email"]=> string(25) "[email protected]" ["admin"]=> bool(true) ["password"]=> string(5) "chris" ["address"]=> string(16) "Dear Christian" ["ministry"]=> string(6) "" } ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> array(8) { ["id"]=> int(1) ["first_name"]=> string(12) "Christianfds" ["last_name"]=> string(7) "Koester" ["email"]=> string(25) "[email protected]" ["admin"]=> bool(true) ["password"]=> string(5) "chris" ["address"]=> string(16) "Dear Christian" ["ministry"]=> string(6) "" } ["_related":"yii\db\BaseActiveRecord":private]=> array(0) { } ["_errors":"yii\base\Model":private]=> NULL ["_validators":"yii\base\Model":private]=> NULL ["_scenario":"yii\base\Model":private]=> string(7) "default" ["_events":"yii\base\Component":private]=> array(0) { } ["_behaviors":"yii\base\Component":private]=> array(0) { } }
당신은 참조 ID, FIRST_NAME, LAST_NAME 등의 내용이 사라 것을 :
\yii::$app->user->identity
에 위해서 var_dump를하고있는 항목 페이지에 리디렉션 후 나는 다음과 같은 내용을 얻었다. 사용자가 게스트인지 여부를 묻는 것이 가능합니다. 게스트는 잘못된 것으로 반환됩니다 (사용자가 로그인 한 경우). 나를 LAST_NAME 등 아이디, FIRST_NAME 같은 필드의 값을 얻을 수 있도록 그들이 NULL이기 때문에 그러나, 수 없습니다 :
사용자를위한구성 파일 : 난 전에
이'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
'enableSession' => true,
],
아무도 나를 도와 드릴까요 미쳤어!
감사 크리스
당신이 무슨 일이 일어나고 있는지 전혀 모르는 것 같습니다 정직하게 'findOne()'2) 같은 속성의 이미 가져온 값으로 속성을 다시 설정 3)'Yii :: $ app'에서 적절한'Yii' 대신 소문자'yii'를 사용하고 마지막으로 4)'login()'는'false'의'true'를 리턴했습니다. 나는 [Yii 2.0에 대한 확실한 안내서] (http://www.yiiframework.com/doc-2.0/guide-index.html)를 읽기를 강력히 권장합니다. – Bizley