В части 1 вашего вопроса ... технически я думаю, что вы могли бы сделать это, но я не думаю, что вы сможете сделать это эффективным способом или способом, который не идет вразрез с хорошими практиками(т.е. добавление менеджера сущностей в вашу сущность).
Ваш вопрос интересный, потому что на первый взгляд я бы также подумал об использовании $store->getMessages()
.Но из-за ваших пользовательских критериев, я думаю, вам лучше использовать собственный класс репозитория для сообщений.Тогда у вас могут быть такие методы, как
$messageRepo->getForStoreOrderedBy($storeId, $orderBy)
и
$messageRepo->getForStoreWhereVerified($storeId)
.
Теперь вы можете сделать это из сущности Store с помощью методовкак $store->getMessagesWhereVerified()
, но я думаю, что вы загрязните сущность магазина, особенно если вам нужно все больше и больше этих пользовательских методов.Я думаю, что, храня их в хранилище сообщений, вы разделяете свои проблемы более чистым способом.Кроме того, с хранилищем сообщений вы можете сохранить запрос, указав , а не , для которого нужно сначала получить ваш объект Store, поскольку вам нужно будет только запросить таблицу сообщений и использовать ее store_id
в предложении WHERE.
Надеюсь, это поможет.