当前位置: 首页 > 知识库问答 >
问题:

照明\数据库\查询异常SQLSTATE[23000]:完整性约束违反: 19非空约束失败

戚翰飞
2023-03-14

我刚接触laravel,尝试存储数据,但不断出现以下错误:

   Illuminate\Database\QueryException
   SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: courses.user_id (SQL: insert into "courses" ("title", "image" "updated_at", "created_at") values (new title, ?, 2020-06-06 23:02:53, 2020-06-06 23:02:53))

在控制器中的存储方法:

   public function store(StoreCourseRequest $request) {
      $addCourse = Course::create($request->all());

       foreach ($request->input('course_images', []) as $file) {
          $addCourse->addMedia(storage_path('tmp/uploads/' . $file))->toMediaCollection('course_images');
          }

      if ($media = $request->input('ck-media', false)) {
          Media::whereIn('id', $media)->update(['model_id' => $addCourse->id]);
          }
      return redirect('/course');
    }

店铺请求:

   class StoreCourseRequest extends FormRequest
     {
     public function authorize()
      {
         return true;
      }

    public function rules()
     {
       return [
          'title'       => [
              'required',
           ], 
      ];
     }
 }

数据库:

 Schema::create('courses', function (Blueprint $table) {
        $table->id();
        $table->unsignedBigInteger('user_id');
        $table->string('title');
        $table->string('image')->nullable();
        $table->timestamps();
        $table->index('user_id');
        $table->softDeletes();
    });
}

错误指向控制器:

   $addCourse = Course::create($request->all());

但不确定怎么解决。请帮忙。提前谢谢。

共有1个答案

家经纶
2023-03-14

user\u id列设为外键,该外键引用用户表上的id列,如果不必为课程分配用户,则将其设为空

$table->unsignedBigInteger('user_id')->nullable();
$table->foreign('user_id')->references('id')->on('users');

您还需要更改索引,因为它可能为null

<罢工> $表-

  • 要求用户登录以便创建课程
public function authorize()
{
  return auth()->check();
}
  • 添加auth()-
$course = $request->validated();
$course['user_id'] = auth()->id();
$addCourse = Course::create($request->all());

 类似资料:
  • 我使用一个自定义的API请求到我的数据库来生成一个新的条目。 我的表格结构是这样的: 表结构 我将Incident_Type设置为唯一,因为这是我的系统的要求。当我向系统发布新条目时: 第一次很好。 第二次: 当我使用不同的事件id时,我得到错误: 为什么发送请求使用完全相同的条目,即使我更改了数据?我该怎么解决这个问题?

  • 问题内容: 我有此代码,但是当我尝试这些代码时,我得到: SQLSTATE [23000]:违反完整性约束:1048列“ post”不能为null,此错误。 我找不到任何解决方案。我尝试了另一种可以正常工作的功能,但这个功能无法正常工作。 问题答案: 插入$ post = $ _POST [‘post’];

  • 我的迁移: 但会导致查询异常:( SQLSTATE[23000]:完整性约束冲突:密钥“users\u identifier\u unique”的1062重复条目“76561198364059468”

  • 照明\database\queryexception SQLSTATE[23000]:完整性约束违反:19 NOT NULL约束失败:users.password(SQL:插入“users”(“name”、“email”、“username”、“updated_at”、“created_at”)值(MADHUP KUMAR,Chandrashivam99@gmail.com,Vansh123,20

  • 问题内容: 我试图在我的注释表中插入值,但出现错误。俗话说,我不能添加或更新子行,我也不知道这意味着什么。我的架构如下所示: 我尝试执行的mysql语句如下所示: 我得到的错误看起来像这样: SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(。,CONSTRAINT FOREIGN KEY()引用()删除无操作,更新无操作) 问题答案: 这仅表示在表 co

  • 我不确定这个错误是从哪里来的。我不知道它将如何尝试将副本添加到我的数据库中。思想?我打错电话了吗?我已经把范围缩小到我知道与签名部分有关的地方。我在DB中只有一列id