2016-07-11 6 views
1

で同じページに2のフォームタグを使用するにはメンバ関数formNameフォームにエラー コール()はnullどのように私は2は、フォーム持っているのYii、 のフロントエンドでのYii

//フォームのコード

<!-------signup----------> 
<h1>Signup Form</h1> 
<?php $form = ActiveForm::begin(['id' => 'form-signup', 'action' => Url::to(['site/signup'])]); ?> 
    <?= $form->field($modelSignup, 'username')->textInput(['autofocus' => true]) ?> 
    <?= $form->field($modelSignup, 'email') ?> 
    <?= $form->field($modelSignup, 'password')->passwordInput() ?> 
    <?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> 
<?php ActiveForm::end(); ?> 
<!-------// signup----------> 

<!-------login----------> 
<h1>Login Form</h1> 
<?php $form = ActiveForm::begin(['id' => 'form-login', 'action' => Url::to(['site/login'])]); ?> 
    <?= $form->field($modelLogin, 'username')->textInput(['autofocus' => true]) ?> 
    <?= $form->field($modelLogin, 'email') ?> 
    <?= $form->field($modelLogin, 'password')->passwordInput() ?> 
    <?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?> 
<?php ActiveForm::end(); ?> 
<!-------//login----------> 
+0

plsもコードを表示します。 –

+1

コントローラから '$ modelLogin'を渡しましたか? PLCのログイン操作も表示されます。 –

+0

パブリック関数actionIndex(){ \t \t \t \t IF(ISSET($ _ REQUEST [ '申し込み'])) \t \t { \t \t \t $ modelSignup =新しいSignupForm()。 リターンの$ this - >( 'インデックス'、[ \t \t \t 'modelSignup' => $ modelSignup、 \t \t])をレンダリングします。他 \t \t} \t \t { \t \t \t $ modelLogin =新しいLoginForm()。 リターンの$ this - >( 'インデックス'、[ \t \t \t 'modelLogin' => $ modelLogin、 \t \t])をレンダリングします。 \t \t} } –

答えて

0

でこれを試してみてください:

コントローラ:

public function actionIndex() { 
     $modelSignup = new SignupForm(); 
     $modelLogin = new LoginForm();  
     return $this->render('index',[ 'modelSignup' => $modelSignup,'modelLogin' => $modelLogin ]);   
} 

はまた、あなたのコードからこのチェックを外す:あなたのビューファイルで

if(isset($modelLogin) 
+0

<?php if(isset($ modelLogin)){ ?> ............. このコードはログインフォームが表示されていないので、そのコードは、ログイン時にその時に表示されることを意味します。 –

+0

あなたのindex.phpコードを表示します –

+0

インデックス.php私は2つのフォームthatsコードalery私はクエリに入れて –

0

は、次の2つのモデル、signup用とloginのために他を使用しています。しかし、あなたのコメントからは、一度に1つのモデルしか渡していないことに注意していました。したがって、actionIndex()を次のコードに置き換える必要があります。

public function actionIndex() { 
    $modelSignup = new SignupForm(); 
    $modelLogin  = new LoginForm(); 
    if(isset($_POST['SignupForm'])) { 
     //code for signup process 
    } 

    if(isset($_POST['LoginForm'])) { 
     //code for login process 
    } 

    return $this->render('index', [ 'modelSignup' => $modelSignup, 'modelLogin' => $modelLogin ]); 
} 

これは役に立ちます。

関連する問題