where('server_id', $databaseUser->server_id) ->whereIn('name', $input['databases']) ->count(); if (count($input['databases']) !== $dbs) { throw ValidationException::withMessages(['databases' => __('Databases not found!')]); } $databaseUser->databases = $input['databases']; // Unlink the user from all databases $databaseUser->server->database()->handler()->unlink( $databaseUser->username, $databaseUser->host ); // Link the user to the selected databases $databaseUser->server->database()->handler()->link( $databaseUser->username, $databaseUser->host, $databaseUser->databases ); $databaseUser->save(); $databaseUser->refresh(); return $databaseUser; } public static function rules(Server $server, array $input): array { return [ 'databases.*' => [ 'nullable', Rule::exists('databases', 'name')->where('server_id', $server->id), ], ]; } }