2016-11-25 9 views
0

私はyii2が新しく、ちょっとした助けを求めています。controller1のビューをcontroller2のビューにレンダリングする方法yii2?

これは、サイトコントローラ(基本テンプレートyii2 views/site/index.php

<?= $this->render('//tours/_form.php ') ?> 

で私index.phpの一部であり、私はこのindex.php

で(ツアーコントローラの図である)tours/_form.phpをレンダリングする必要があります

未定義の変数:モデル

が、エラーはこれです210

私は問題がsiteController にあると思いますが、どうすればよいですか?

私は同じコントローラを持つビューをレンダリングする方法を理解していますが、これは多分異なると仮定しています。あなたの助け

編集を事前に

ありがとう:サイトコントローラから

この私のコントローラのアクションは、これはGIIは、私が呼び出す必要があり、多分そこ

public function actionIndex() 
    { 
     return $this->render('index'); 
    } 

それを生成しただけのようですツアーモデル?

+0

あなたのコントローラーアクションを表示 –

+0

@NitinP投稿に追加 – Rugleh

+0

はいツアーモデルを呼び出し、そのモデルインスタンスをビューページに渡す必要があります –

答えて

0

、あなたは複数のモデルを返すことができ

あなたのビューページにアクセスするためのワンモデルを、返さなければならないも

public function actionIndex() 
    { 
     $model = User::find()->where(['name' => 'CeBe'])->one(); // dummy example 

     return $this->render('index', ['model'=>$model]); // this can be used on your index page 
    } 

あなたのインデックスアクションから返されたモデルはあなたのビューページからアクセス可能になりますアクションについてもっと知りたい場合は

+0

ご協力いただきありがとうございます!今それは動作します:D – Rugleh

+0

あなたに手伝ってうれし:) –

0

おそらく、この部分ビューに変数$modelを渡していない可能性があります。それは好きですか:

<?= $this->render('//tours/_form.php', ['model' => $model) ?> 

もちろん、これが機能するには、渡す変数が$modelである必要があります。通常、コントローラからビューに同じ方法で渡されます。

public function actionIndex() 
{ 
    $model = 1; // init the variable 

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

ただし、この変数を最初に設定する必要があります。あなたが任意のモデルを返却していない、あなたのindexアクションから

+0

ありがとうございました!私はレンダリング( '// tours/_form.php'、['model' => $ model])?>を追加しましたが、同じエラーが発生しました未定義変数:model – Rugleh

+0

はい、そうでした。サイトコントローラのアクション、あなたの助けに感謝! – Rugleh

+0

回答に同意してください。 – Bizley

関連する問題