jongpak / prob-board

A simple web board based on prob-framework
MIT License
1 stars 0 forks source link

FileBaseAccountManager 사용 시 게시물/코멘트 등록에서 오류발생 #38

Open jongpak opened 7 years ago

jongpak commented 7 years ago

오류내용:

Argument 1 passed to App\Entity\Post::setUser() must be an instance of App\Entity\User, null given, called in /var/www/board/app/Utils/ContentUserInfoSetter.php on line 30 Exception: TypeError File: /var/www/board/app/Entity/Traits/UserContentable.php:25

오류원인: ContentUserInfoSetter에 보면 다음과 같이 DB에서 계정정보를 가져오도록 하드코딩 되어있다. 그래서 DB가 아닌 파일기반의 계정정보인 경우 이 부분에서 NULL을 반환하고 이것을 $content->setUser(...) 하는 부분에서 타입 오류가 발생하게 된다.

/** @var User */
$user = EntitySelect::select(User::class)
    ->criteria(['accountId' => $loginManager->getLoggedAccountId()])
    ->findOne();

따라서 다양한 환경에서도 가능하도록 위 부분을 고쳐야 한다. AccountManager에서 User 엔티티를 반환하는 getUserXXX 이러한 메서드들이 더 지원되어야 할 듯..

jongpak commented 7 years ago

prob-framework 로 이슈 옮김.

jongpak commented 7 years ago

prob-board의 문제이므로 이슈 재개

jongpak commented 7 years ago

이 문제는 ORM이 사용하는 DB와 계정 레이어에서 사용하는 정보와 일치해야 하는 것으로 일단 종결

jongpak commented 7 years ago

AcountAdaptor를 두어서 Account를 ORM에서 원하는 형태(User 엔티티 등..)로 만들어주는 레이어가 필요할 듯 하다. 요롷게하면 ORM이든 뭐든 적절히 변환시켜주면 문제없을듯..