这是我第一次使用laravel中的关系查询。我这里有两个表。用户和电话。用户可以有多个电话。我有一个表单来注册一个有电话号码的用户。我想将用户数据和电话号码中的用户数据保存在电话表中。但是每当我尝试将数据保存在表格中时,我都会收到以下错误:
SQLSTATE [23000]:完整性约束违规:1048列 'phone_no'不能为空(SQL:插入
phones
(phone_no
,user_id
,updated_at
,created_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>
答案 0 :(得分:3)
错误告诉您phone_no
的值不能为空。
我怀疑您在以下代码中表示$request->phone
而不是phone1
:
$phone->phone_no = $request->phone1;