user()->hasRole('moderator')) { $resourceRelationship = $request->get('viaResource'); if (empty($resourceRelationship)) { return $query->where(function ($query) use ($request) { $query->where('moderator_checking_id', $request->user()->id)->orWhere('moderator_checking_id', null); }); } } } public static function relatableUsers(NovaRequest $request, $query) { return $query->whereHas('roles', function ($query) { $query->where('name', 'moderator'); }); } public static $with = ['reason', 'user', 'moderator']; /** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function fields(Request $request) { return [ ID::make(__('ID'), 'id')->sortable(), BelongsTo::make('User') ->onlyOnIndex(), BelongsTo::make('Moderator', 'moderator', 'App\Nova\User') //->readonly(optional($this->resource)->user_checking_id !== null) ->readonly() ->withoutTrashed(), BelongsTo::make('Reason') ->readonly(), BelongsTo::make('Feed') ->readonly()->sortable(), Select::make('Status')->options([ 'pending' => 'Pending', 'reviewed_bad' => 'Reviewed Bad', 'reviewed_ok' => 'Reviewed Ok', ]), Textarea::make('Message')->alwaysShow()->rules('required'), DateTime::make('Created At')->format('DD MMM YYYY')->onlyOnIndex(), ]; } /** * Get the cards available for the request. * * @param \Illuminate\Http\Request $request * @return array */ public function cards(Request $request) { return []; } /** * Get the filters available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function filters(Request $request) { return []; } /** * Get the lenses available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function lenses(Request $request) { return []; } /** * Get the actions available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function actions(Request $request) { return []; } }