2017-10-14 70 views
0

我遇到問題,將數據插入到我的數據庫表中。我有users table它與school tableregion table有一對多的關係。即,users table具有foreign keysschool and region tables數據庫關係 - Laravel

我已經創建了正確的關係,但是當我嘗試向數據庫中插入值時,出現錯誤。

PS:我有一個用戶(管理員)在用戶表(school_id和region_id被準確插入)已經通過RegisterController保存。現在,當我登錄的用戶(管理員)已保存,我想通過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

有三個解決您的問題。

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進入到phpMyAdmin讓你的學校ID,REGION_ID默認值爲NULL。所以你很好走。

1

MySQL是告訴你,因爲他們不能爲空這些字段不能爲空。

爲了使這些領域nullable()在您的用戶遷移:

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

(您可以添加任何其他屬性,這些 - 像index()unsigned(),或外鍵等)