2017-02-18 10 views
1

私はzf2で簡単なログインをしています。ユーザー名とパスワードが一致しなかった場合、エラーメッセージエラーをユーザーに表示します。私が持っているコントローラーでコントローラからzf2のビューにエラーメッセージを渡します。

if (isset($error_msg)) 
    { 
    echo $error_msg; 
    } 

:ビュー/ login.phpで

$msg = array('error_msg' => 'Invalid Username or Password'); 
return $this->redirect()->toRoute('login', $msg); 

をここERROR_MSGは何がこれで間違っている、ビューに渡されることができませんか?

さらに、私はまた

$model = new ViewModel(array(
    'error_msg' => 'Wrong username or password', 
)); 
$model->setTemplate('login/index'); 
return $model; 

を試してみてくださいしかし、ここでのリンクは/インデックスのログインに行きませんでした。代わりにlogin/processに行きます。プロセスは、ログインが処理されるアクションです。

私の友人を助けてください。私はコントローラからのエラーメッセージを渡したいと思っています。だから私はどうすればいいのですか?

+0

あなたは、このためのリダイレクトを必要としません。現在のビューを使用してエラーをレンダリングするだけです。 – akond

+0

だから、どうですか?コードを – Skylink

答えて

2

あなたのログインプロセスコードをログインインデックスアクションに入れるだけで、2つのアクションを実行する必要はありません。ログインを処理して失敗したと判断した場合は、エラーメッセージをビューモデルに渡してビューに表示するだけです。これはいくつかの方法で行うことができます。

$viewModel = new ViewModel(); 
$viewModel->error_msg = 'Wrong username or password'; 
return $viewModel; 

return new ViewModel(array(
    'error_msg' => 'Wrong username or password', 
)); 

または単に

return array(
    'error_msg' => 'Wrong username or password', 
); 
+0

にしてください。この回答で問題が解決した場合は、正しいものとしてマークしてください。 – edigu

関連する問題