App\Http\Controllers\User\Settings\UserController::edit PHP Method

edit() public method

show user editing page
public edit ( $id ) : Xpressengine\Presenter\RendererInterface
$id
return Xpressengine\Presenter\RendererInterface
    public function edit($id)
    {
        $user = $this->handler->users()->with('groups', 'emails', 'accounts')->find($id);
        if ($user === null) {
            $e = new InvalidArgumentHttpException();
            $e->setMessage('존재하지 않는 회원입니다.');
            throw $e;
        }
        $ratings = Rating::getUsableAll();
        $ratingNames = ['member' => xe_trans('xe::memberRatingNormal'), 'manager' => xe_trans('xe::memberRatingManager'), 'super' => xe_trans('xe::memberRatingAdministrator')];
        foreach ($ratings as $key => $rating) {
            $ratings[$key] = ['value' => $rating, 'text' => $ratingNames[$rating]];
            if ($rating === $user->rating) {
                $ratings[$key]['selected'] = 'selected';
            }
        }
        $groupList = $this->handler->groups()->all();
        $groups = $this->getGroupInfo($groupList);
        foreach ($user->groups as $group) {
            $groups[$group->id]['checked'] = 'checked';
        }
        $status = [\XeUser::STATUS_ACTIVATED => ['value' => \XeUser::STATUS_ACTIVATED, 'text' => xe_trans('xe::permitted')], \XeUser::STATUS_DENIED => ['value' => \XeUser::STATUS_DENIED, 'text' => xe_trans('xe::rejected')]];
        $status[$user->status]['selected'] = 'selected';
        // profileImage config
        $profileImgSize = config('xe.user.profileImage.size');
        // dynamic field
        $dynamicField = app('xe.dynamicField');
        $fieldTypes = $dynamicField->gets('user');
        $defaultAccount = null;
        if (isset($user->accounts)) {
            foreach ($user->accounts as $account) {
                if ($account->provider === \XeUser::PROVIDER_DEFAULT) {
                    $defaultAccount = $account;
                }
            }
        }
        return XePresenter::make('user.settings.user.edit', compact('user', 'ratings', 'groups', 'status', 'defaultAccount', 'fieldTypes', 'profileImgSize'));
    }