2017-10-14 180 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(),或外键等)