2017-10-14 11 views
0

データベーステーブルにデータを挿入する際に問題が発生しています。私はusers tableを持っていますが、これは1対多の関係がschool tableregion tableです。すなわち、users tableforeign keysschool and region tablesです。データベースの関係 - Laravel

リレーションを正しく作成しましたが、データベースに値を挿入しようとすると、エラーが発生します。

PS:私はRegisterControllerを通じて保存されているユーザテーブル(school_idとでregion_idが正確に挿入された)すでに一人のユーザ(管理者)を有します。さて、すでに保存されているユーザー(admin)でサインインすると、UserControllerを通して他のユーザーを保存したいのですが、上記のエラーが表示されます。

私は何を正しくしませんか?私はデータベース関係とlaravelの初心者です

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

意味フィールドは空ではありません。

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

    } 

答えて

1

3がありますあなたの問題に対する解決策。

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ゴーあなたschool_id、region_nameのデフォルト値のNULLを作るphpMyAdminにします。あなたは行くのが良いです。

1

MySQLは、彼らがNULL可能ではありませんので、これらのフィールドは空にできないことを語っています。ユーザーの移行におけるそれらのフィールドnullable()を作るために

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

(あなたがこれらに他のプロパティを追加することができます - などindex()unsigned()、または外部キーのような)