Php Yii博客演示,评分系统在评分时不更新数据库

Php Yii博客演示,评分系统在评分时不更新数据库,php,mysql,yii,blogs,Php,Mysql,Yii,Blogs,我试图在Yii的演示博客中添加一个简单的评分系统。我添加了一个带有id、值、帖子id和用户id的评级模型 我在我的Post模型中添加了addRating()方法: public function addRating($rating) { $rating->post_id=$this->id; $rating->user_id=Yii::app()->user->getId(); } 我还向PostController添加了一个newRating()

我试图在Yii的演示博客中添加一个简单的评分系统。我添加了一个带有id、值、帖子id和用户id的评级模型

我在我的Post模型中添加了addRating()方法:

public function addRating($rating)
{
    $rating->post_id=$this->id;
    $rating->user_id=Yii::app()->user->getId();
}
我还向PostController添加了一个newRating()方法:

protected function newRating($post)
{
    $rating = new Rating;

    if(isset($_POST['Rating']))
    {
        $rating->attributes=$_POST['Rating'];
        if($post->addRating($rating))
        {
            Yii::app()->user->setFlash('ratingSubmitted', 'Thanks for your rating!');
            $this->refresh();
        }
    }
    return $rating;
}
我更新了Post视图以呈现评级表:

<div class="form">

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

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

<div class="row">
    <?php echo $form->labelEx($model,'val'); ?>
    <?php echo $form->dropDownList($model,'val',array(1,2,3,4,5)); ?>
    <?php echo $form->error($model,'val'); ?>
</div>

<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<br/>
<?php $this->endWidget(); ?>

</div>



但是,当我从下拉菜单中选择一个评级并点击Post view页面上的submit时,它不会插入tbl_评级表。我是不是错过了一个重要的步骤?提前感谢。

您需要在DB中保存您的评级!在显示的代码中,没有保存
ActiveRecord
对象
$rating

你应该这样做:

public function addRating($rating)
{
    $rating->post_id=$this->id;
    $rating->user_id=Yii::app()->user->getId();
    if($rating->save()) {
        return true;
    } else {
        return false;
    }
}

这两种方法都不保存评级模型。另外,您如何调用
newRating()
?在何处调用以保存到数据库评级。如果这是您保存评级的完整代码。你是对的,我意识到我的addRating()函数中缺少了一个return语句。不过我让它工作了。谢谢