Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从另一个相关表编辑字段后,如何更新表?_Php_Laravel - Fatal编程技术网

Php 从另一个相关表编辑字段后,如何更新表?

Php 从另一个相关表编辑字段后,如何更新表?,php,laravel,Php,Laravel,我目前正在从事一个项目,该项目有一个帐户管理部分,系统管理员在其中创建用户帐户 [Users]表有一个名为“Organization\u name”的列,该列是用户表示的组织。提交表单后,“Organization_name”也将添加到[Organization]表的[name]字段下。这两个表由“user_id”列(取自[Users]的“id”列)关联 我设法创建了一个工作代码来添加一个[Users]帐户,该帐户还将组织名称添加到[organization]表中,尽管现在我想知道如何创建一个函

我目前正在从事一个项目,该项目有一个帐户管理部分,系统管理员在其中创建用户帐户

[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.php


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列中?