为了账号安全,请及时绑定邮箱和手机立即绑定

SQLSTATE[HY000]:一般错误:1364 字段“名字”没有默认值

SQLSTATE[HY000]:一般错误:1364 字段“名字”没有默认值

PHP
繁花不似锦 2023-05-12 15:26:52
我是 Laravel 框架的新手。我遇到了用户表迁移的问题。我向表的“firstname”添加了 nullable,这有效但对“lastname”列显示相同的错误。我已将 nullable() 添加到每一列,这不是正确的方法。这个怎么解决??任何人都可以请建议。用户迁移表,面临“名字”列的问题。 创建用户表.phppublic 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');        }
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

实现这一目标的最简单方法是:


   public function store(Request $request)

    {

        $request->validate([

            'firstname'=>'required',

            'lastname'=>'required',

            'email'=>'required',

        ]);


            $user=new User();

            $user->firstname = $request->firstname;

            $user->lastname = $request->lastname;

            $user->email = $request->email;

            $user->dob = $request->dob;

            $user->address = $request->address;

            $user->phonenumber = $request->phonenumber;

            $user->save();

            return redirect('/users')->with('success','user added');

    }

同样在您的模型中,您必须添加此行以进行质量分配


protected $fillable = ['firstname','lastname','email','dob','address','phonenumber'];

查看完整回答
反对 回复 2023-05-12
?
炎炎设计

TA贡献1808条经验 获得超4个赞

您发布的代码中存在错误,这是修复方法:


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');

        }

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


查看完整回答
反对 回复 2023-05-12
  • 2 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信