繁体   English   中英

SQLSTATE [23000]:违反完整性约束:在Laravel 5.2中

[英]SQLSTATE[23000]: Integrity constraint violation: in Laravel 5.2

我需要将Project Model ID作为project_id传递给“我的任务模型”表。 这是我的TaskController

     public function store(Request $request, Project $project)
{
    $task = new Task;
    $task->task_name   = $request->input('name');
    $task->body = $request->input('body');
    $task->assign = $request->input('status');
    $task->priority = $request->input('status');
     $task->duedate  = date("Y-m-d", strtotime($request->input("date")));
     $task->project_id = $project->id;


    // This will set the project_id on task and save it
    $project->tasks()->save($task);
}

这是关于将任务数据存储在项目文件夹刀片文件中的我的表单操作路线是show.blade.php

<form method="post" action="{{ route('tasks.store') }}">

这是任务模式

<?php

namespace App;

use App\User;
use App\Auth;
use App\Project;

use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
     protected $fillable = ['task_name', 'body', 'assign','priority','duedate','project_id'];



      public function scopeProject($query, $id)
    {
        return $query->where('project_id', $id);
    }


     public function projects()
     {
         return $this->belongsTo('App\Project');
     }


    //
}

这是项目模型

 {
        protected $fillable = ['project_name','project_notes','project_status','color','group'];
        //

        public function tasks(){
             return $this->hasMany('App\Task');
    }


but I got this error massage here

SQLSTATE [23000]:违反完整性约束:1048列'project_id'不能为null如何解决此问题?

在store()函数中,您没有给任务指定project_id。

因此,当您保存任务时,它会使project_id行为空。 默认情况下,此行是不允许的。 这就是为什么您会收到此错误。

我认为添加此行将起作用:

 $task->project_id = $project->id;

您还可以在迁移中使project_id为空。 如果这样做,则允许project_id为null。 但是我不认为那是您想要的。

仅将project_id字段设置为有效值或零(如果没有唯一索引)

在您的迁移文件中,您没有提到project_id为null。 如果您不是,则必须以这种方式添加project_id

$table->string('project_id')->nullable();

如果您不以这种方式使用,则必须必须将project_id传递为有效值,例如0或其他值,但不能为null。 看到错误。 它说project_id不能为null。 因此您不能将null值用作project_id。

您在数据库中说project_id不为null,但发送null值,这就是您收到此错误的原因。 希望你能理解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM