【发布时间】:2014-03-03 16:23:30
【问题描述】:
四处搜索后,问题似乎是在插入表 2 时表 1 中不存在该 id,但它确实存在于我的表中!实际上,直到昨天,这几个月都运行良好。
错误:无法添加或更新子行:外键约束审核失败 CONSTRAINT reviews_ibfk_1 FOREIGN KEY (user_id) REFERENCES user(user_id))
public function actionAjaxComment($id) {
$prod_id= $id;
if(Yii::app()->request->isAjaxRequest) {
$model=new Review;
$this->performAjaxValidation($model);
$user_id = Yii::app()->user->user_id;
$criteria = new CDbCriteria;
$criteria->compare('target_product_id',$prod_id);
$criteria->compare('user_id',$user_id);
$record = $model->findAll($criteria);
$model->attributes=$_POST['Review'];
if(empty($record)) {
$date = Yii::app()->getDateFormatter()->formatDateTime(time(), 'long', 'short');
$model->user_id = $user_id;
$model->target_product_id = $prod_id;
$model->review_date = time();
$uname = ucwords(Yii::app()->user->username);
$img = User::model()->FindByPk($user_id)->image;
$img_url = Yii::app()->basePath."/images/user/".$img;
$img = Yii::app()->assetManager->publish($img_url);
$model->save();
echo CJSON::encode(
array('status'=>'success',
'star'=>$model->star,
'review'=>$model->review,
'user'=>$uname,
'uimg'=>$img,
'date'=>$date,
));
return $model->review;
} elseif(!empty($record)) {
echo CJSON::encode(
array('status'=>'dup'
));
} else
echo CJSON::encode(
array('status'=>'error'
));
Yii::app()->end();
}
}
【问题讨论】:
-
Yii::app()->user->user_id; user_id 是否在 useridentity.php 中设置?
-
检查 Yii::app()->user->user_id;是返回用户ID吗?
-
是的,它返回了正确的 id
-
请查看此链接,您可能会遇到答案中所述的问题之一。 stackoverflow.com/questions/21971599/yii-null-foreign-key/…
-
谢谢!这是#3!只为这件小事花了几个小时。 :/ 再次感谢!