• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پیغام خطا در ایجاد پست - yii (حل شد)
#1
من بعد از کلیک کردن create post روی این پیغام خطا رو میگیرم
کد پی‌اچ‌پی:
CDbCommand failed to execute the SQL statementSQLSTATE[23000]: Integrity constraint violation1452 Cannot add or update a child rowa foreign key constraint fails (`db`.`post`, CONSTRAINT `post_ibfk_1FOREIGN KEY (`id_user`) REFERENCES `user` (`id_user`)). The SQL statement executed wasINSERT INTO `post` (`post_title`, `post_content`, `category_id`, `tags`, `date`) VALUES (:yp0, :yp1, :yp2, :yp3NOW()) 


لطفآ بگین چه فایل هایی رو بزارم که بتونیم اشکالشو تشخیص بدیم
  پاسخ
تشکر شده توسط :
#2
توی کدوم اکشن این خطا رو می گیری؟
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : mehrd4d
#3
create
  پاسخ
تشکر شده توسط :
#4
خب کدش رو بزار دیگه :دی
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : mehrd4d
#5
کد پی‌اچ‌پی:
    public function actionCreate()
    {
        
$model=new Post;

        
// Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        
if(isset($_POST['Post']))
        {
            
$model->attributes=$_POST['Post'];
            
$model->date = new CDbExpression('NOW()');
            if(
$model->save())
                
$this->redirect(array('view','id'=>$model->post_id));
        }

        
$this->render('create',array(
            
'model'=>$model,
        ));
    } 
  پاسخ
تشکر شده توسط :
#6
solved
  پاسخ
تشکر شده توسط :
#7
اوه
من این رو تازه دیدم
شرمنده

پاسخ رو هم بنویس لطفن که اگه کسی هم این مشکل رو داشت حل بشه مشکلش
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : mehrd4d
#8
چشم Blush


همانطور که در پیغام خطا میبینیم, مشکل در کلید خارجی است.
اینجا ما برای پست یک کلید خارجی داریم به نام آیدی یوزر.
وقتی ما اطلاعات پست را به دیتا بیس میفرستیم, کلید خارجی ما آپدیت نمیشود.
پس باید ان را اضافه کنیم

کد پی‌اچ‌پی:
            $model->id_user Yii::app()->user->id

که در کل میشود

کد پی‌اچ‌پی:
    /**
     * Creates a new model.
     * If creation is successful, the browser will be redirected to the 'view' page.
     */
    
public function actionCreate()
    {
        
$model=new Post;

        
// Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        
if(isset($_POST['Post']))
        {
            
$model->attributes=$_POST['Post'];
            
$model->date = new CDbExpression('NOW()');
            
$model->id_user Yii::app()->user->id;        
            if(
$model->save())
                
$this->redirect(array('view','id'=>$model->post_id));
        }

        
$this->render('create',array(
            
'model'=>$model,
        ));
    } 


امیدوارم خوب توضیح داده باشم
  پاسخ
تشکر شده توسط :
#9
میتونی توی before_save هم بزاری که هروقت آپدیت یا اینسرت می شه این خط اضافه بشه
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : mehrd4d


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان