我有餐桌和优惠表。一家餐厅可能有多个优惠。我正在尝试使用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]);
});
但我没有收到优惠数据,我哪里出错了。感谢。
答案 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');
}
}