withOrdering($request->withFilters( $query->whereExists(fn (Builder $subQuery) => $subQuery->select(DB::raw(1)) ->from('users as u2') ->where(fn (Builder $conditonQuery) => $conditonQuery ->whereColumn('u2.ip_register', 'users.ip_register') ->orWhereColumn('u2.ip_register', 'users.ip_current') ->orWhereColumn('u2.ip_current', 'users.ip_register') ->orWhereColumn('u2.ip_current', 'users.ip_current')) ->whereColumn('users.id', '<>', 'u2.id') ->whereColumn('users.id', '>', DB::raw("(SELECT MIN(u3.id) FROM users u3 WHERE u3.ip_register = users.ip_register OR u3.ip_register = users.ip_current OR u3.ip_current = users.ip_register OR u3.ip_current = users.ip_current)")) ) )); } /** * Get the fields available to the lens. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function fields(NovaRequest $request) { return [ ...$request->newResourceWith($this->resource)->fields($request), Text::make('Parent Account', fn () => DB::table('users as u2') ->where(fn (Builder $query) => $query->where('u2.ip_register', $this->ip_register) ->orWhere('u2.ip_register', $this->ip_current) ->orWhere('u2.ip_current', $this->ip_register) ->orWhere('u2.ip_current', $this->ip_current)) ->orderBy('u2.id', 'asc') ->value('u2.username') ), ]; } /** * Get the cards available on the lens. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function cards(NovaRequest $request) { return []; } /** * Get the filters available for the lens. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function filters(NovaRequest $request) { return []; } /** * Get the actions available on the lens. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function actions(NovaRequest $request) { return parent::actions($request); } /** * Get the URI key for the lens. * * @return string */ public function uriKey() { return 'cloned-users'; } }