2017-03-21 89 views
0

我想在actionView方法中渲染兩個模型,但沒有結果。檢查了以前的問題的一些答案,似乎我的方法是好的,但仍然無法正常工作。在View中渲染兩個模型yii2

這是何等的方法觀提出:

public function actionView($id) 
    { 
     $postModel = Post::find()->where(['post_id' => $id])->one(); 

     $currUser = BlogUser::find()->where(['id' => $postModel->user_id])->one(); 

     return $this->render('view', [ 
      'model' => $this->findModel($id), 
      'author' => $currUser 
     ]); 
    } 

和我的看法頁:

<?php 

use yii\helpers\Html; 
use yii\widgets\DetailView; 

/* @var $this yii\web\View */ 
/* @var $model app\models\Post */ 

//$this->title = $model->title; 
//$this->params['breadcrumbs'][] = ['label' => 'Posts', 'url' => ['index']]; 
//$this->params['breadcrumbs'][] = $this->title; 
?> 
<div class="post-view"> 

    <div class="content"> 
     <div class="row"> 
      <div class="col-md-3"> 

       <?= $model->content; 
        $author->username; 
       ?> 

      </div> 
     </div> 
    </div> 

</div> 

它告訴筆者變量是不確定的,但不能明白爲什麼當我在使它行動。將欣賞每一個建議!謝謝!

+0

要渲染針對哪個型號另一個文件? –

+0

你確定$ currUser包含一個有效的模型嗎? ..如果查詢沒有返回一個有效的模型你有和未定義的值 – scaisEdge

+0

是的,它返回一個有效的對象作者時,我直接在view.php中鍵入代碼。檢查它與var_dump,它似乎是正確的:) –

回答

2

嘗試使用:

<div class="post-view"> 

    <div class="content"> 
     <div class="row"> 
      <div class="col-md-3"> 
       <?= $model->content; ?> 
      <?= $author->username; ?> 
      </div> 
     </div> 
    </div> 

</div> 
+0

好吧,它正在這樣工作!萬分感謝!但爲什麼另一種方式是錯誤的?再次感謝您:) –

+0

<?= variable_name?>相當於<?php echo variable_name?>。它只需要一個變量而不是兩個。 – Chinmay

+0

哦,是的,當我以這種方式看到它時,我總是忘記這實際上是回聲。再次感謝你! –