2016-03-03 56 views
0

這是我第一次在laravel中使用關係查詢。我在這裏有兩個表。用戶和Phones.An用戶可以有多個phone.In有一個表單來註冊一個用戶使用電話號碼。我想保存在用戶表中的用戶數據,並在手機table.But的電話號碼,每當我試圖保存在表中我得到以下錯誤數據:在laravel關係表中保存數據時出錯

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

控制器方法與數據插入交易該表如下:

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

你應該做一個$電話 - > phone_no = $數據[ '電話'];而不是$ phone-> phone_no = $ request-> phone1; –

回答

3

錯誤是告訴你,對於phone_no值可以不要空白。

我懷疑你在下面的代碼意味着$request->phone而不是phone1

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

謝謝..我完全忘了:) –