Когда надо и не надо использовать скобки в relations?
Например, у нас есть связь авторов с постами. Можно писать так в laravel $author->post()
и вот так $author->post
В документации просто говорится, что может быть динамическим свойством.
Может кто-нибудь прояснить этот момент?
Для получения заголовков автора: $author->post()->get(['post_title']). Во втором случае вы можете использовате дальше where, но это будет уже вызов метода коллекции. То есть запрос к бд отправится без where, а where отфильтрует данные уже на стороне php.
Когда вам нужно целиком получить родственную модель, используйте $author->post, когда нужно получить эту же модель/коллекцию моделей, удовлетворяющую каким-либо условиям (where, limit, order by, получение только некоторых колонок из таблицы и т.д.), используйте $author->post()->where('foo', 'bar')->limit(5)->get(['foo', 'bar', 'baz']);
Александр Мелихов: а в get разве можно указывать названия полей. я таких примеров не нашел в документации. там написано, что при выборке определенных полей надо использовать select