そこで、Symfony2でサインイン(ログイン)フォームとサインアップ(登録)フォームでページを作りたいと思います。そして、私はこれを達成するための最良の方法は何でしょうか?
form属性の設定を検討しましたaction="/pathToMyFormProcess"
が、問題が発生しました。そのアクションで同じテンプレート(HTMLページ)を表示したいのです。ただし、「/ pathToMyFormProcess」は、さまざまなテンプレートを使用したさまざまなアクションで呼び出されます。すべてのページに含まれるかレンダリングされるログインフォームのように。テンプレートごとに新しいパスとアクションを作成できました。しかし、この例が示すように、それは非常にイライラするでしょう:
私のサインアップアクションは次のようになります。
public function signupAction() {
$loginForm = $this->get('loginform'); // Get the login form
$signUpForm = $this->get('signupform'); // Get the signup form
$loadData = ... /* Loading data needed for this page (could be last visitors,
countries, some information from database that should be displayed on the page) */
return // SIGNUPTEMPLATE - array ( forms and data )
}
次に、誰かがログインフォームを使用した場合、たとえば、SignupControllerのアクションloginActionを使用して/ signup/loginに送信します。
public function signupAction() {
$loginForm = $this->get('loginform'); // Get the login form
$handler = $this->get('loginhandler'); // Get the handler
$process = $handler->process(); // Process the request, try to log in basicly.
if($process) {
return // redirect or something - no problem
}
// Loading again, writing exact same code as signupAction()
$signUpForm = $this->get('signupform'); // Get the signup form
$loadData = ...
return // SIGNUPTEMPLATE - array ( forms and data )
}
だから私はあなたがこれを達成する方法についてもっと良いアイデアがあるかどうか疑問に思っていますか?