0

This is the first time i am working with relational queries in laravel.I Have two tables here .Users and Phones.An user can have multiple phone.I have a form to register a user with a phone number. I want to save the user data in users table and the phone number in phones table.But whenever i attempt to save the data in tables i get the following error:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'phone_no' cannot be null (SQL: insert into phones (phone_no, user_id, updated_at, created_at) values (, 8, 2016-03-03 00:49:01, 2016-03-03 00:49:01))

The controller method which deals with data insertion in the tables is the following :

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

    }

}

the registration form is the following :

 {!!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
  • 1
    You should do a $phone->phone_no = $data['phone']; instead of $phone->phone_no = $request->phone1; Commented Mar 3, 2016 at 0:58

1 Answer 1

3

The error is telling you that the value for phone_no cannot be blank.

I suspect that you meant $request->phone instead of phone1 in the following code:

    $phone->phone_no = $request->phone1;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.