SQLSTATE [HY000]:常规错误:1364字段'firstname'没有默认值(SQL:插入到`users`(`email`)值([email protected]))]

问题描述 投票:0回答:1

我是Laravel框架的新手。

我在迁移User表时遇到了一个问题。我在表的'firstname'中添加了可以为null的值,虽然可以,但是对于'lastname'列显示相同的错误。我在每列中都包含nullable(),这不是正确的方法。如何解决呢?任何人都可以建议。

用户迁移表,“名字”列面临问题。create_user_table.php

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('firstname');
        $table->string('lastname');
        $table->string('email')->unique();
        $table->date('dob');
        $table->char('address',100);
        $table->bigInteger('phonenumber');
    });
}

带存储的UserController UserController.php

    public function store(Request $request)
        {
            $request->validate([
                'firstname'=>'required',
                'lastname'=>'required',
                'email'=>'required',
            ]);

            $user=new User([
                $user->firstname=>$request->get('firstname'),
                'lastname'=>$request->get('lastname'),
                'email'=>$request->get('email'),
                'dob'=>$request->get('dob'),
                'address'=>$request->get('address'),
                'phonenumber'=>$request->get('phonenumber')
                ]);
                $user->save();
                return redirect('/users')->with('success','user added');
        }
php laravel crud database-migration laravel-controller
1个回答
0
投票

您发布的代码有误,解决方法是:

public function store(Request $request)
        {
            $request->validate([
                'firstname'=>'required',
                'lastname'=>'required',
                'email'=>'required',
            ]);

            $user=new User([
                'firstname' => $request->get('firstname'), // $user->firstname=>$request->get('firstname'),
                'lastname'=> $request->get('lastname'),
                'email' => $request->get('email'),
                'dob' => $request->get('dob'),
                'address' => $request->get('address'),
                'phonenumber' => $request->get('phonenumber')
                ]);
                $user->save();
                return redirect('/users')->with('success','user added');
        }

也在这里您正在使用批量分配,因此您应该将所有使用的列添加到用户模型中的可填充数组中。

这里是a link on what is mass assignment

© www.soinside.com 2019 - 2024. All rights reserved.