в yii есть проблема "просмотр формы комментария в списке постов" - PullRequest
0 голосов
/ 26 июля 2011

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

<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>

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

Ответы [ 2 ]

1 голос
/ 26 июля 2011

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

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

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

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

0 голосов
/ 26 июля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...