2011-07-26 2 views
0

Я попытался привести форму комментариев в список просмотра сообщений, где пользователь может поместить комментарий. мой код, который я пишу для вышеуказанной проблемы ...есть проблема в yii «комментарий формы формы в списке сообщений»

<h5>Add your Comment</h5> 

    <?php if(Yii::app()->user->hasFlash('commentSubmitted')): ?> 
     <div class="flash-success"> 
      <?php echo Yii::app()->user->getFlash('commentSubmitted'); ?> 
     </div> 
    <?php else: ?> 

     <?php $this->renderPartial('/comment/_form',array(
      'model'=>$comment 
     )); ?> 

    <?php endif; ?> 

"_form содержат ....."

<div class="form"> 

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'comment-form', 
    'enableAjaxValidation'=>true, 
)); ?> 

    <p class="note">Fields with <span class="required">*</span> are required.</p> 

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

    <div class="row"> 
    <?php echo $form->labelEx($model,'content'); ?> 
    <?php echo $form->textArea($model,'content',array('rows'=>6, 'cols'=>50)); ?> 
    <?php echo $form->error($model,'content'); ?> 
    </div> 
    <div class="row"> 
    <?php echo $form->labelEx($model,'author'); ?> 
    <?php echo $form->textField($model,'author',array('size'=>60,'maxlength'=>128)); ?> 
    <?php echo $form->error($model,'author'); ?> 
    </div> 

Это дает ошибку "Undefined переменной: комментарий"

+0

Сообщение об ошибке также содержит файл, в котором произошла ошибка, и строка, в которой происходит ошибка. Эта информация полезна для решения проблемы (вы даже можете найти причину проблемы, просто посмотрев ссылочный файл/строку). – Arjan

ответ

0

Не зная точно, где происходит ошибка, то мне кажется, что самое логичное место в этом фрагменте кода:

<?php $this->renderPartial('/comment/_form',array(
    'model'=>$comment 
)); ?> 

Возможно, решение было бы заменить $comment на 'Comment' (или что-то подобное, я не очень хорошо знаком с Yii).

1

Необходимо определить $comment. Вы пытаетесь передать модель в форму. Обычно это модель таблицы базы данных. Похоже, вы используете активную форму. Это означает, что вы используете модель Active Record в Yii. У вас должна быть модель, которая покрывает вашу таблицу комментариев. Если вам нужно знать, как создать модель, вы можете узнать, как использовать Gii here.

Если у вас уже есть модель комментариев, вам просто нужно определить модель. Что-то вроде:

$comment = new Comment(); 
$this->renderPartial('/comment/_form',array('model'=>$comment)); 

Похоже, что это вид, который иногда вызывает другой вид. Вы можете определить переменную $comment в контроллере, которая вызывает исходное представление. Вам просто нужно передать переменную комментария в исходный вид, а также второй.

Смежные вопросы