Laravel 4 Показать рекламу, чтобы загрузить любые фотографии из другой таблицы

У меня проблема с отображением данных из формы. Он хочет загрузить данные из двух таблиц, соединенных внешним ключом.
Я не знаю, что я делаю не так, потому что мне в чалое время возвращается сообщение:

Undefined property: Illuminate\Database\Eloquent\Relations\HasMany::$file

предлагает табель:

id
user_id
title
...

фотоференция табель:

id
offer_id <- primary key offers.id
file (url photos)
...

мой взгляд:

@foreach($offers as $offer)
{{ HTML::image($offer->photosofoffers()->file, $offer->title, array('width'=>'50')) }}

моя модель предложение:

    protected $fillable = array('id_category','user_id', 'title', 'description', 'price', 'availability');

public static $rules = array(
'id_category'=>'required|integer',
'title'=>'required|min:2',
'description'=>'required|min:2',
'price'=>'required|numeric',
'availability'=>'integer'

);public function photosofoffers(){

return $this->hasMany('Photosofoffer');
}public function category() {
return $this->belongsTo('Category');
}}

моя модель фотофферфер

<?php

class Photosofoffer extends Eloquent {
public function offer(){
return $this->belongsTo('Offer');

}

public function offers() {
return $this->hasMany('Offer');
}

}

Как отобразить рекламу, чтобы загрузить любые картинки из другой таблицы?

0

Решение

hasMany означает, что есть много фотографий одного предложения. Поэтому разумно называть $something->photosofoffer()->photo ? Если возвращаемый объект является объектом, вы обязательно получите ошибку.

Сначала сделай dd($offer->photosofoffers()) или же dd($offer->photosofoffers) чтобы увидеть, что происходит. Затем, если объект правильно выводится, вам нужно проверить цикл через него. лайк @foreach($offer->photosofoffers as $photo) your loop of diplaying image @endforeach,

Если ничего не получено, измените функцию контроллера, где вы собираете фактическую $offer и сделать это Model::with('photoofoffers')->get() or first()

Это должно прояснить это.

Надеюсь это поможет.

YK.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]