0

我是 Laravel 框架的新手。

我在迁移用户表时遇到了一个问题。我在我的表的“名字”中添加了可空值,它可以工作,但在“姓氏”列中显示相同的错误。我在每一列中都包含了 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.php 的UserController

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

2 回答 2

0

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

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

您可以查看此链接进行批量分配:https ://laravel.com/docs/7.x/eloquent#mass-assignment

于 2020-06-10T08:29:33.923 回答
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');
        }

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

这是关于什么是质量分配的链接

于 2020-06-09T20:18:24.587 回答