Вы запросили все фотографии, используя это:
$photos = User::find(1)->photos->where('photo', 'ut.jpg')->first();
Используя User::find(1)->photos
, вы получаете Коллекция Laravel . В этих коллекциях также есть метод where
. В общем, вы запускаете SQL для получения всех фотографий User 1
, а затем просто фильтруете эту коллекцию, чтобы показать вам только элемент с фотографией ut.jpg
.
Вместо этого вы можете использовать скобки, чтобы получить связь, а затем запросить ее.
Ваш запрос становится
$photos = User::find(1)->photos()->where('photo', 'ut.jpg')->first();
Вместо того, чтобы называть его $photos
, вы должны назвать его $photo
, так как вы запрашиваете с first
- что приведет только к одному объекту (или нулю).