Php 从另一个相关表编辑字段后,如何更新表?
我目前正在从事一个项目,该项目有一个帐户管理部分,系统管理员在其中创建用户帐户 [Users]表有一个名为“Organization\u name”的列,该列是用户表示的组织。提交表单后,“Organization_name”也将添加到[Organization]表的[name]字段下。这两个表由“user_id”列(取自[Users]的“id”列)关联 我设法创建了一个工作代码来添加一个[Users]帐户,该帐户还将组织名称添加到[organization]表中,尽管现在我想知道如何创建一个函数,每当我编辑[User]中的字段时,该函数也会编辑[organization]表中的行 (例如,我将id为1的[Users]中的“organization_name”字段从“organization A”更改为“organization B”,用户id为1的[organization]中的“name”字段也应从“organization A”更改为“organization B”) 注意:“role_id”决定一个用户帐户将拥有什么类型的帐户权限,它不会影响这个问题,但我将把它留在下面的代码片段中以防万一 我将在下面附上我使用的代码: UserController.phpPhp 从另一个相关表编辑字段后,如何更新表?,php,laravel,Php,Laravel,我目前正在从事一个项目,该项目有一个帐户管理部分,系统管理员在其中创建用户帐户 [Users]表有一个名为“Organization\u name”的列,该列是用户表示的组织。提交表单后,“Organization_name”也将添加到[Organization]表的[name]字段下。这两个表由“user_id”列(取自[Users]的“id”列)关联 我设法创建了一个工作代码来添加一个[Users]帐户,该帐户还将组织名称添加到[organization]表中,尽管现在我想知道如何创建一个函
private static function createUser(Request $request)
{
$user = new User();
$user->email = $request->get('email');
$user->organization_name = $request->get('organization_name');
$user->password = Hash::make($request->get('password'));
$user->role_id = $request->get('role_id');
return $user;
}
private static function createSubUser(Request $request, $user_id)
{
$role_id = $request->get('role_id');
if($role_id == 1)
{
$sub_user = new Organization();
$sub_user->user_id = $user_id;
$sub_user->name = $request->get('organization_name');
}
elseif($role_id == 2)
{
$sub_user = new Staff();
$sub_user->user_id = $user_id;
}
elseif($role_id == 3)
{
$sub_user = new Administrator();
$sub_user->user_id = $user_id;
}
return $sub_user;
}
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|string|email|max:255|unique:users',
'organization_name' => 'required|string|max:255|unique:users',
'password' => 'required|string|min:6',
]);
if($validator->fails()){
return response()->json($validator->errors()->toJson(), 400);
}
$user = static::createUser($request);
$user->save();
$sub_user = static::createSubUser($request, $user->id);
$sub_user->save();
}
public function updateUserInfo(Request $request)
{
$user = User::find($request->id);
if($user->email == $request->email){
$check_email = false;
}
else{
$check_user = User::where('email', $request->email)->first();
if (!empty($check_user)) {
$check_email = true;
}
else {
$check_email = false;
}
}
if($check_email === true)
{
return response()->json([
'success' => false,
'error' => "User with the registered email of {$request->input('email')} already exists",
]);
}
else
{
$user = User::where('id', $request->id)->update([
'email' => $request->input('email'),
'organization_name' => $request->input('organization_name'),
'role_id' => $request->input('role_id')
]);
return response()->json([
'success' => true,
'user' => $user
]);
}
}
谢谢大家! 为什么需要在组织中添加用户id??
一个组织应该有许多学生或用户。
不需要在用户表上存储组织名称,只需保存组织的id。
当您需要更新组织名称时,只需在组织表上更新组织名称。
因为您不需要在用户表中更改,只需将id保存在此处。
如果您有任何组织名称,请随意评论混淆。jQuery的相关性在哪里?在表上创建触发器来进行更新可能更容易。或者用一个单独的表列出组织名称。然后在与之相关的表中添加一个fkname@hurnhu如何使此触发器更新?我已经有一个单独的表,表名为[organization](在createSubUser函数下),用户id是将所述表与[Users]表关联的。假设您使用的是mysql。如果您已经有一个单独的表,为什么组织名也存储在[user]表中?@hurnhu[Users]中的组织名表是可填充的,在那里输入的任何内容都将镜像并创建到[Organization]表中。我已经成功完成了这一部分,我只是想知道当我从[Users]更新“Organization\u name”字段时,如何从[Organization]表更新字段“name”table我正在制作的系统是一个组织总裁列表,这就是为什么每个组织只有一个代表(总裁)。在[Users]表上有一个组织名称列,因为当他们注册时,他们会在其中输入组织的名称。然后系统会将他们输入的组织添加到[Organizations]中表中,以下列为:-user\u id-name(组织名称)您能否建议一种方法,这样当我更新[Users]表中的组织名称时,它也会反映在[Organizations]表的name列中?