Я пытаюсь получить повесить Laravel. Я использую Laravel 4. Прямо сейчас у меня есть две таблицы, таблица «Продукты» и таблица «Изображения». У продукта может быть много изображений, и изображение принадлежит продукту.Laravel Eloquent выбрать из отношений
Поэтому у меня есть две модели:
class Product extends Eloquent {
public function images()
{
return $this->hasMany('Image');
}
}
class Image extends Eloquent {
protected $table = 'product_images';
public function product()
{
return $this->belongsTo('Product');
}
}
Теперь я строительстве «индекс» страницы ресурса, так что я продукт :: все() в контроллере и отправить на представление.
В представлении я делаю foreach и петлю над всеми продуктами. Но теперь я хочу получить изображение для показа с продуктом. Но я не могу понять, как получить, например, первый образ.
Когда я делаю $product->images
Я получаю объект всех изображений, связанных с продуктом.
Когда я $product->images->url
я получаю сообщение об ошибке (Undefined свойство «URL»)
Я попытался $product->images->first()->url
это также дает ошибку (Попытка получить свойство не-объекта)
Что я делать не так?
Когда я это делаю: '$ product-> images [0] -> url', я получаю' Undefined offset: 0'. Когда я использую foreach, он работает. Было бы неплохо использовать цикл каждый раз, когда я просто хочу получить одно изображение. – RGweb
Тогда подход Марко должен работать. Извините, я не смог проверить мой, поскольку я не на своей машине разработки. – Dwight
Ну, я думаю, что что-то не так с моей начальной настройкой. Я начал новый проект, и теперь '$ product-> images [0] -> url' действительно работает! – RGweb