XamarinDevil
XamarinDevil

Reputation: 891

Database Relationship - Laravel

I am having issues inserting data into my database tables. I have users table which is has a relation of one to many to school table and region table. That is, users table has foreign keys of school and region tables.

I have created the relations correctly but then when i try to insert values into the database, i get the error.

PS: I have one user(admins) in the user table (the school_id and region_id was inserted accurately) already which i saved through RegisterController. Now, when i sign in with the user(admin) already saved, i want to save other users through the UserController but then i get the error above.

What am i not doing right?. I am only a beginner with database relationship and laravel

General error: 1364 Field 'school_id' and `region_id`doesn't have a default value 

meaning the field cannot be empty.

UserController

 public function store(UserFormRequest $request)
    {
        $user = new User(array(
             'name' => $request->get('name'),
             'email' => $request->get('email'),
             'password'=> $request->get('password'),
             'phone' => $request->get('phone')           

              ));
        $user->save();

    }

Upvotes: 0

Views: 50

Answers (2)

Zulfiqar Tariq
Zulfiqar Tariq

Reputation: 394

there are three solutions to your problem.

1

 public function store(UserFormRequest $request)
    {
        $user = new User(array(
             'name' => $request->get('name'),
             'email' => $request->get('email'),
             'password'=> $request->get('password'),
             'phone' => $request->get('phone'),
             'school_id'=>'you must pass value here',
             'region_id'=>'you must pass value here'        

              ));
        $user->save();

    }

2 Go to phpmyadmin make your school_id,region_id default value NULL. so you are good to go.

Upvotes: 1

tptcat
tptcat

Reputation: 3961

MySQL is telling you that those fields can't be empty because they aren't nullable.

To make those fields nullable() in your users migration:

// Your create users table migration
$table->integer('school_id')->nullable();
$table->integer('region_id')->nullable();

(You can add any other properties to these - like index(), unsigned(), or foreign keys, etc.)

Upvotes: 1

Related Questions