在laravel

时间:2016-03-03 00:52:43

标签: php mysql laravel

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

  

SQLSTATE [23000]:完整性约束违规:1048列   'phone_no'不能为空(SQL:插入phonesphone_no,   user_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>

1 个答案:

答案 0 :(得分:3)

错误告诉您phone_no的值不能为空。

我怀疑您在以下代码中表示$request->phone而不是phone1

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