我有一个用户模型和捐助者模型,其中包含捐助者类型的用户的额外数据。当用户想要更新他的个人资料时,我想同时更新这两个表。下面是代码:同时更新两个模型(Laravel 4.2)
//用户模型
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!'));
}
}
我试图按照文档和至今我去那儿。当提交bt而不是捐助者数据时,用户数据被保存。
你有错误吗?检查laravel日志。 – TheFallen
我在这里得到错误$ donor = User :: find($ id) - >列ID的捐助者。 – user94743
好的,但是你能编辑你的文章并粘贴错误信息吗? – TheFallen