php Laravel SQLSTATE[HY000]:一般错误:1364

lkaoscv7  于 2023-04-10  发布在  PHP
关注(0)|答案(1)|浏览(302)

当我运行dd行时,我可以成功地看到数据,但$applicatesave->job_post_id =($id);在行中不工作

SQLSTATE[HY000]: General error: 1364 Field 'job_post_id' doesn't have a default value (Connection: mysql, SQL: insert into `job_post_questions` (`question`, `application_id`, `type`, `updated_at`, `created_at`) values (dasdsadas, 10, 2, 2023-04-08 16:56:15, 2023-04-08 16:56:15))
public function applicationsave(Request $request, $id)
{
    // dd($id);

    $cv = $request->file('cv'); // Dosya yükleniyor
    $cvName = time() . '_' . $cv->getClientOriginalName(); // Dosya adı oluşturuluyor
    $cv->move(public_path('cv'), $cvName); // Dosya kaydediliyor

    $applicatesave = new applications();
    $applicatesave->name = $request->name;
    $applicatesave->email = $request->email;
    $applicatesave->phone_number = $request->phone_number;
    $applicatesave->city = $request->city;
    $applicatesave->linkedin = $request->linkedin;
    $applicatesave->job_post_id =($id);
    $applicatesave->cv = 'cv/' . $cvName;

    $applicatesave->save();

    foreach($request->question as $key=>$data){
        $question = Job_post_questions::firstOrCreate(
            ['question' =>  $key],
            [
                'application_id' => $applicatesave->id,
                'type' => 2,

                ]
        );

        Answers::create([
            'question_id' => $question->id,
            'answer' => $data,
            'applications_id' => $applicatesave->id
        ]);
    }

    return back();
}

我想将id数据保存在job_post_id列中,但出现错误

nimxete2

nimxete21#

由于job_post_questions表的job_post_id列不可为空,并且您没有在架构上为ir设置默认值,因此在向job_post_questions插入记录时必须为其设置值。
1.如果不使用该列,只需从job_post_questions表中删除job_post_id列
1.如果您需要使用该列,请执行以下操作:

//....
 $question = Job_post_questions::firstOrCreate(
     ['question' =>  $key],
     [
         'application_id' => $applicatesave->id,
         'type' => 2,
         'job_post_id' => $id
     ]
 );
 //....

相关问题