Laravel Eloquent一对多的关系

时间:2017-09-15 13:18:57

标签: php laravel orm eloquent

我有餐桌和优惠表。一家餐厅可能有多个优惠。我正在尝试使用hasMany()方法创建Restaurant - Offers之间的关系。

表格结构:

1)餐厅

  • ID

  • 餐厅名称

2)提供

  • offer_id

  • restaurant_ID

  • OFFER_PRICE

代码:在餐厅模型中我正在做这样的事情

<?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]);
});

enter image description here

但我没有收到优惠数据,我哪里出错了。感谢。

2 个答案:

答案 0 :(得分:1)

如果您想要在模型中定义的关系,您必须使用模型:

$restaurants = \App\Restaurant::simplePaginate(3);

查询构建器不返回模型实例,它返回stdClass对象。

答案 1 :(得分:0)

在模型中更改代码如下:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Restaurant extends Model
{
    public function offer(){    
         return $this->hasMany('Offer','restaurant_ID','id');
    }
}