여기 Yii noob.레이아웃의 로그인 폼 YII
부분으로 렌더링되는 드롭 다운 로그인 양식을 만들었습니다. 사용자 자격 증명이 정확하고 원하는 곳으로 리디렉션되면 제대로 작동합니다. 그러나 양식 유효성 검사 또는 인증에 실패하면 로그인 메시지로 전달할 오류 메시지를 가져올 수 없습니다. 문제는 내 로그인 양식이 주 레이아웃에 있기 때문에 (언제든지 액세스 할 수 있기를 원함) 컨트롤러가 레이아웃에 깨끗한 방식으로 변수를 전달할 수 없다고 생각합니다. 그래서 여기
는 로그인 양식, 나는 참으로 enableAjaxValidation을 설정, 또한
public function actionLogin()
{
$form = new LoginForm;
if (isset($_POST['LoginForm']))
{
$form->attributes=$_POST['LoginForm'];
//validate user input and redirect to user panel if valid
if($form->validate() && $form ->login())
{
$success = "oui";
$this->render('user_panel');
}
else
{
$success = $form->getError('login').$form->getError('password');
$this->render('index',array('success'=>$success));
//here I can pass the error messages to the index view for example, but not to the login form in the main layout, how can I do this?
}
}
}
SiteController
내 로그인 작업입니다, 그 일을 어떻게하는지? 컨트롤러에 Ajax를 통해 양식에 직접 응답 할 수 있다고 말할 수 있습니까?마지막 질문 하나 : 양식이 $ form-> errorSummary ($ model) & 모델을 새 LoginForm으로 표시해야합니다. 오류 요약을 표시하지 않는 이유는 무엇입니까? 관심
내가 말한 것처럼 로그인 양식이 레이아웃에 있으므로 전달하는 오류가이 방식으로 작동하지 않는 것 같습니다. 실제로 'index'를 렌더링하는 대신 사용자가 로그인 한 모든 뷰를 rende해야합니다. – Arthur
$ model이 새로운 LoginForm 권한으로되어 있습니까? – Arthur