我在这个问题上阅读了这篇文章并回答了Songwut K.:
但我想知道可以在_item中使用第二个模型。假设_item是论坛中的一个帖子,它从$ model中检索数据,但我想使用不同的模型,如$ comment,对我发表评论,并将评论作为一个_item与评论一起查看。想象这个项目在Facebook上发布,它只显示写这篇文章的文字,日期和用户。但我如何从其他模型添加评论呢?我只想将我的$评论传递给_item视图。
我尝试在我的控制器中添加新的Commnet:
public function actionIndex()
{
$model = new NewsForm();
$searchModel = new NewsSearch();
$comment= new UrComment();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->setSort(['defaultOrder' => ['Id'=>SORT_DESC]]);
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$model->saveNews();
return $this->redirect(['/content/news']);
} else {
return $this->render('index', [
'model' => $model,
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'comment' => $comment
]);
}
}
并将其渲染为索引。但我只能在索引中使用我的$ comment如何将其传递给_item?我试过这个:
<?php
echo ListView::widget( [
'dataProvider' => $dataProvider,
'itemView' => '_item',
'summary'=>'',
'comment' => $comment
]); ?>
在我的_item中尝试过:
<?= $model->getStatus($model->cnNewsContentType_Id); ?> <br>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($comment, 'Text')->textInput(['maxlength' => true])->label('Treść') ?>
<?php ActiveForm::end(); ?>
但有错误:
未知属性 - yii \ base \ UnknownPropertyException
设置未知属性:yii \ widgets \ ListView :: comment
在_item我只能使用$ model。可以将我的$注释传递给_item视图吗?请帮助我
答案 0 :(得分:11)
您应该只使用viewParams
:
在呈现时要传递给
$itemView
的其他参数。仅当$itemView
是表示视图名称的字符串时才使用此属性。
e.g。 :
<?= ListView::widget( [
'dataProvider' => $dataProvider,
'itemView' => '_item',
'viewParams' => ['comment' => $comment],
'summary'=>'',
]); ?>