표시이름(displayName)에 대한 유효성 검사를 한다. 표시이름이 형식검사와 중복검사를 병행한다.
public validateDisplayName ( string $name ) : boolean | ||
$name | string | 유효성 검사를 할 표시이름 |
return | boolean | 유효성검사 결과, 통과할 경우 true, 실패할 경우 false |
public function update($userId, Request $request) { // basic validation $this->validate($request, ['displayName' => 'required']); // member validation /** @var UserInterface $user */ $user = $this->handler->users()->find($userId); if ($user === null) { throw new UserNotFoundException(); } $displayName = $request->get('displayName'); $introduction = $request->get('introduction'); // displayName validation if ($user->getDisplayName() !== trim($displayName)) { $this->handler->validateDisplayName($displayName); } XeDB::beginTransaction(); try { // resolve profile file if ($profileFile = $request->file('profileImgFile')) { /** @var UserImageHandler $imageHandler */ $imageHandler = app('xe.user.image'); $user->profileImageId = $imageHandler->updateUserProfileImage($user, $profileFile); } $this->handler->update($user, compact('displayName', 'introduction')); } catch (\Exception $e) { XeDB::rollback(); throw $e; } XeDB::commit(); return redirect()->route('member.profile', [$user->getId()])->with('alert', ['type' => 'success', 'message' => '변경되었습니다.']); }
/** * validate DisplayName * * @param Request $request * * @return \Xpressengine\Presenter\RendererInterface * @throws Exception */ public function validateDisplayName(Request $request) { $name = $request->get('name'); $name = trim($name); $valid = true; try { $this->handler->validateDisplayName($name); $message = '사용 가능한 이름입니다.'; } catch (DisplayNameAlreadyExistsException $e) { $valid = false; $message = $e->getMessage(); } catch (InvalidArgumentException $e) { $valid = false; $message = $e->getMessage(); } catch (\Exception $e) { throw $e; } return XePresenter::makeApi(['type' => 'success', 'message' => $message, 'displayName' => $name, 'valid' => $valid]); }