我有一个问题,可能微不足道,但我无法处理它,因为我摆脱它仍然会出现任何错误类型:unserialize (): Error at offset 0 of 31 bytes
Controller :
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,
));
}
和我的 View 文件:
<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 at offset 0 of 31 bytes 或类似错误。
你能帮我一下吗? :)
最佳答案
首先在此处更改您的代码
$post=Mymodel::model()->findAll(array("condition"=>"id = $id"));
或者您可以选择
$post=Mymodel::model()->findByPk($id);
仅当您的 ID 是数据库表中的主键时才执行此操作,否则请选择第一个。
然后您将得到正确的值。
关于php - Yii 反序列化和 diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27014015/