У меня есть таблица ресторанов и таблица предложений. В одном ресторане может быть несколько предложений. Я пытаюсь создать связь между Restaurant-Offers, используя метод hasMany ().
Структура таблицы:
1) ресторан
Я бы
название ресторана
2) предложения
offer_id
restaurant_ID
предложение цены
Код: В модели ресторана я делаю что-то вроде этого
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Restaurant extends Model { public function offer(){ return $this->hasMany('Offer'); } }
и я попытался напечатать результат, используя
под кодом в поле зрения
foreach ($restaurants_data as $key => $value) { print_r($value->offer); ?>
Код маршрута :
Route::get('/home/restaurants',function(){ $restaurants = DB::table('restaurants')->simplepaginate(3); return view('restaurants',['restaurants_data'=>$restaurants]); });
Но я не получаю данные о предложениях, где я ошибаюсь. Благодарю.
Если вам нужны отношения, определенные в модели, вы должны использовать модель:
$restaurants = \App\Restaurant::simplePaginate(3);
Конструктор запросов не возвращает экземпляры модели, он возвращает объекты stdClass.
В модели измените код следующим образом:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Restaurant extends Model { public function offer(){ return $this->hasMany('Offer','restaurant_ID','id'); } }