Yii unserialize和diff

时间:2014-11-19 10:06:26

标签: php mysql yii

我有一个问题,可能是微不足道但我无法处理它,因为我突然发现它仍然有任何错误类型:unserialize (): Error at offset 0 of 31 bytes

控制器:

public function actionHistory($id)
{
    $post=Mymodel::model()->findAll('id='.$id);




    if($post == null){
        $error = Yii::app()->errorHandler->error;
        if ($error)
            $this->render('error', array('error'=>$error));
        else
            throw new CHttpException(404, 'Page not found.');
    }


    $dataProvider=new CActiveDataProvider('Mymodel',array(
        'criteria'=>array(
            'condition'=>'id='.$id,
            'order'=>'id desc',
        )
    ));


    $this->render('history',array(
        'dataProvider'=>$dataProvider,
        'id'=>$id,

    ));
}

和我的查看文件:

<div class="view" style="float: left; width:100%;">

    <b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b>
    <?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>
    <br />
    <div id="old" style="width: 48%; margin: 1%; float: left; ">

        <b><?php echo CHtml::encode($data->getAttributeLabel('old')); ?>:</b>
        <div id="old" style="float: left; width:100%; background-color:rgba(248, 200, 178, 0.3)">

        <?php

        echo CHtml::encode($data->old);
        ?>
            </div>
        <br />
    </div>
    <div id="diff" style="width: 48%; margin: 1%; float: left; ">

        <b><?php echo CHtml::encode($data->getAttributeLabel('diff')); ?>:</b>
        <div id="diff" style="float: left; width:100%; background-color: rgba(210, 249, 244, 0.45);">

            <?php echo CHtml::encode($data->diff); ?>
        </div>
        <br />
    </div>

</div>

现在,$data->diff$data->Old被添加到帮助序列化的数据库中,现在需要使用unserialize来显示数据,但是当它尝试始终获得error unserialize (): Error at offset 0 of 31 bytes or similar.

你能以某种方式帮助我吗? :)

1 个答案:

答案 0 :(得分:0)

首先在这里更改您的代码

 $post=Mymodel::model()->findAll(array("condition"=>"id = $id"));

或者您可以选择

$post=Mymodel::model()->findByPk($id);

仅当您的id是数据库表中的主键时才执行此操作,否则请先执行此操作。

然后你会得到正确的价值。