我正在尝试在 laravel 4 中改进我的应用程序中的一些代码,并尝试实现模型之间的关系。
我有一张名为预订的表格,它与物品有一对多的关系。项目与产品具有一对一的关系。基本上作为预订,预订中包含的项目被添加到项目表中。物品的规格来自产品表(类型、价值等)
我在模型中设置了如下关系:
在预订类中:
public function item() {
return $this->hasMany('Item');
}
在项目类中:
public function reservation() {
return $this->belongsTo('Reservation');
}
public function product() {
return $this->hasOne('Product');
}
在产品类别中:
public function item() {
return $this->belongsTo('item');
}
我现在正在尝试查询日历视图的预订。我正在使用以下方法在一个月内检索所有预订:
$events = Reservation::where('play_date','>=',$start->format('Y-m-d'))
->where('play_date','<=', $end->format('Y-m-d'))
->get();
然后我尝试使用以下方法遍历集合(是集合还是结果集?):
$events->each(function($event) { }
然后我想遍历预订的所有项目,正是这一点让我感到困惑。
$items = $event->item()->get();
它确实创建了一个对象,然后我可以使用另一个回调遍历这个子集合,但是我正在努力使用以下方法获取产品信息:
$item->product()->type
我收到一个错误:
Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$type
如何使用 laravel 关系正确遍历项目?这方面的最佳做法是什么,并从产品表中检索与该项目相关的详细信息
谢谢