App\Http\Controllers\User\UserController::updateMainMail PHP Method

updateMainMail() public method

update user's main email address
public updateMainMail ( Illuminate\Http\Request $request ) : Xpressengine\Presenter\RendererInterface
$request Illuminate\Http\Request
return Xpressengine\Presenter\RendererInterface
    public function updateMainMail(Request $request)
    {
        $address = $request->get('address');
        if ($this->user->email === $address) {
            $e = new InvalidArgumentException();
            $e->setMessage('기존 대표 이메일과 동일합니다.');
            throw $e;
        }
        $selected = null;
        foreach ($this->user->emails as $mail) {
            if ($mail->address === $address) {
                $selected = $mail;
                break;
            }
        }
        // 해당회원이 가진 이메일이 아닐 경우 예외처리한다.
        if ($selected === null) {
            $e = new InvalidArgumentException();
            $e->setMessage('존재하지 않는 이메일입니다.');
            throw $e;
        }
        $this->user->email = $address;
        XeDB::beginTransaction();
        try {
            $this->users->update($this->user);
        } catch (\Exception $e) {
            XeDB::rollback();
        }
        XeDB::commit();
        \Session::flash('alert', ['type' => 'success', 'message' => '수정되었습니다.']);
        return XePresenter::makeApi(['message' => '수정되었습니다']);
    }