У меня проблема с отображением данных из формы. Он хочет загрузить данные из двух таблиц, соединенных внешним ключом.
Я не знаю, что я делаю не так, потому что мне в чалое время возвращается сообщение:
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');
}
}
Как отобразить рекламу, чтобы загрузить любые картинки из другой таблицы?
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.
Других решений пока нет …