這是我第一次在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>
你應該做一個$電話 - > phone_no = $數據[ '電話'];而不是$ phone-> phone_no = $ request-> phone1; –