在 Laravel 中将数据保存在关系表中时出错


error while saving data in relational tables in laravel

这是我第一次在 laravel 中使用关系查询。我这里有两张桌子.用户和电话。一个用户可以拥有多部电话。我有一个使用电话号码注册用户的表单。我想将用户数据保存在用户表中,将电话号码保存在电话表中。但是每当我尝试将数据保存在表中时,都会收到以下错误:

SQLSTATE[23000]:完整性约束冲突:1048 列 "phone_no"不能为空(SQL:插入到phonesphone_nouser_idupdated_atcreated_at ) 值 (, 8, 2016-03-03 00:49:01, 2016-03-03 00:49:01))

处理表中数据插入的控制器方法如下:

public function store(Request $request)
{
    //
    $data = $request->all();
    $rules = array(
       'name' => 'unique:users,name|required|alpha_num',
       'password'=>'required|alpha_num',
       'phone'=>'required'
    );
    // Create a new validator instance.
    $validator = Validator::make($data, $rules);
    if($validator->fails()){
        $errors=$validator->messages();
        return Redirect::route('user.create')->withErrors($validator);
    }else{
        $user=new User();
        $user->name=$request->name;
        $user->password=bcrypt($request->password);
        $user->save();
        $phone = new Phone();
        $phone->phone_no = $request->phone1;
        $phone->user()->associate($user);
        $phone->save();
        return Redirect::route('user.index');
    }
}

报名表格如下:

 {!!Form::open(array('url'=>'user','method'=>'POST', 'files'=>true)) !!}
   {!!Form::label('name','Your name')!!}
   {!!Form::text('name')!!}
   </br>
   {!!Form::label('password','input password')!!}
   {!!Form::password('password')!!}
   </br>
    {!!Form::label('phone','enter phone')!!}
    {!!Form::text('phone','',array('placeholder'=>'enter phone'))!!}
    </br>
错误告诉您

phone_no的值不能为空。

我怀疑你的意思是$request->phone而不是phone1在下面的代码中:

    $phone->phone_no = $request->phone1;