我正在使用Laravel 5.7和Vue.js2构建应用程序。我有两个表:部门和用户。用户可以是部门主管。我建立了模型之间的关系。我想要这样,以便在创建新部门时,主管的类型将在用户表上更改为“主管”。
DepartmentController
public function store(Request $request)
{
$this->validate($request, [
'name' => 'string|required|max:191',
'bio' => 'string|required',
'user_id' => 'integer|required|unique:departements'
]);
return Department::create([
'name' => $request['name'],
'user_id' => $request['user_id'],
'bio' => $request['bio']
]);
}
答案 0 :(得分:0)
你可以试试这个吗?
控制器
public function store(Request $request)
{
$this->validate($request,[
'name'=>'string|required|max:191',
'bio'=>'string|required',
'user_id'=>'integer|required|unique:departements'
]);
$new_department = Department::create([
'name'=>$request['name'],
'user_id'=>$request['user_id'],
'bio'=>$request['bio']
]);
$get_user = User::where('id', $request['user_id'])->first();
if($get_user)
{
$get_user->type = 'chief';
$get_user->save();
}
return ['message' => 'success'];
}
在此代码中,保存新部门后,我获得了UserModel中的UserData,其中id为$request['user_id]
,然后检查它是否存在。
如果存在,我将类型更改为'chief'
并保存。
答案 1 :(得分:0)
如果您有两个模型之间的关系,则可以像这样更新
$product = Department::with('relationship_function_name')->find($id);
$product->fields= $request->input_name;
$product->relationship_function_name->field_name = $request->input_name;
$product->update();
希望这会有所帮助:)