在post-yii中添加评论

在post-yii中添加评论,yii,Yii,我正在尝试在我的博客网站中添加评论模块。我所做的是: No 1在Blog post view.php中添加一个,以呈现tblcomments/\u表单 <?php $model_comments = new TblComments; $this->renderPartial('/TblComments/_form',array( 'comments'=>$model_comments, )); ?>

我正在尝试在我的博客网站中添加评论模块。我所做的是:

No 1在Blog post view.php中添加一个
,以呈现tblcomments/\u表单

<?php 

        $model_comments = new TblComments;

   $this->renderPartial('/TblComments/_form',array(
            'comments'=>$model_comments,
        ));

 ?>
注意:此错误发生在第行的TblComments/_表单文件上:

<?php echo $form->errorSummary($model_comments); ?>

谁能解释一下为什么我已经定义了这个未定义的东西

我只是加上

  $model_comments =  new TblComments();
在TblComments/_form.php中,我只需添加

  $model_comments =  new TblComments();

在TblComments/_form.php中,一个小错误是,当您执行以下操作时:

$this->renderPartial('/TblComments/_form',数组(
“评论”=>$model_评论,
));
//或者即使您使用的是render()
传递给模型实例的视图将其作为
$comments
获取,而不是
$model\u comments
,这意味着如果您这样做:

$this->render('someview',array('model_there'=>$model_here));
视图必须在那里使用
$model\u
,而不是在这里使用
$model\u
。如中所述:

render()方法将第二个数组参数提取到变量中。因此,在视图脚本中,我们可以访问局部变量$var1和$var2


也就是说,您应该将实例创建移动到控制器,然后将其传递到视图:

//控制器操作
公共函数actionName($id){
$model_此处=新TBL建议;
$postmodel=loadModel($id);
// ...
$this->render('view',数组(
“postmodel”=>$postmodel,
'model_there'=>model_here
));
}
//in view.php
$this->renderPartial('/TblComments/_form',数组(
'model_there'=>model_there$
);
//然后在表格中使用$model\u

一个小错误是,当您执行以下操作时:

$this->renderPartial('/TblComments/_form',数组(
“评论”=>$model_评论,
));
//或者即使您使用的是render()
传递给模型实例的视图将其作为
$comments
获取,而不是
$model\u comments
,这意味着如果您这样做:

$this->render('someview',array('model_there'=>$model_here));
视图必须在那里使用
$model\u
,而不是在这里使用
$model\u
。如中所述:

render()方法将第二个数组参数提取到变量中。因此,在视图脚本中,我们可以访问局部变量$var1和$var2


也就是说,您应该将实例创建移动到控制器,然后将其传递到视图:

//控制器操作
公共函数actionName($id){
$model_此处=新TBL建议;
$postmodel=loadModel($id);
// ...
$this->render('view',数组(
“postmodel”=>$postmodel,
'model_there'=>model_here
));
}
//in view.php
$this->renderPartial('/TblComments/_form',数组(
'model_there'=>model_there$
);
//然后在表格中使用$model\u

将该行移动到呈现博客文章view.php的控制器操作,并将其传递到视图。通常,根据MVC原则,避免在任何视图文件中分配变量。哦,我第一次没有注意到你的错误,请检查我的答案,将该行移动到呈现博客文章vie的控制器操作w、 php,并将其传递给视图。通常,根据MVC原则,避免在任何视图文件中分配变量。哦,我第一次没有注意到你的错误,请检查一下我的答案谢谢,我理解了!:)谢谢,我理解了!:)
  $model_comments =  new TblComments();