我有一个用户模型和捐赠者模型,其中包含捐赠者类型的其他数据。我想在用户想要更新他的个人资料时同时更新这两个表。以下是代码:
//用户模型
public function donor() {
return $this->hasone('Donor','u_id');
}
//捐赠者模型
public function user(){
return $this->belongsTo('User','id');
}
//控制器
public function updateProfile() {
$input = Input::all();
$lat = Input::get('latitude');
$lng = Input::get('longitude');
$rules = array('username' => 'required|unique:users');
$v = Validator::make($input, $rules);
$id = Auth::user()->id;
if ($v->fails()) {
return Redirect::to('donor/')->withErrors($v)->withInput(Input::all());
} else {
$user = User::find($id);
$donor = User::find($id)->donor;
$user->username = Input::get('username');
$user->name = Input::get('name');
$donor->name = Input::get('name');
$donor->ic = Input::get('ic');
$donor->gender = Input::get('gender');
$donor->blood_type = Input::get('blood_type');
$donor->race = Input::get('race');
$donor->religion = Input::get('religion');
$donor->state = Input::get('state');
$donor->address = Input::get('address');
$donor->lng = $lng;
$donor->lat = $lat;
$donor->email = Input::get('email');
$donor->phone = Input::get('phone');
$user->save();
$donor->save();
return View::make('donorProfile', array('message' => 'Profile successfully updated!'));
}
}
我试着遵循文档,到目前为止我到了这里。提交时保存的用户数据不是捐赠者数据。
答案 0 :(得分:0)
您需要像这样更改代码
$user = User::find($id);
$donor = $user->donor()->first();
它现在将收集对象返回给$ donor以访问$ donor模型的值,您需要按如下方式使用它: -
$donor[0]->name = Input::get('name');