【发布时间】:2014-05-10 14:16:26
【问题描述】:
我得到了三个表例程,measurements 和 pools,它们的数据透视表是 measure_routine,它还存储了一个 pool_id,它引用 pools 表中的一个池。设置如下所示:
例程:
id
value
date
time
emp_id (To reference which employee conducted the task)
测量:
id
title
池
id
name
还有数据透视表measure_routine:
routine_id
measure_id
pool_id
到目前为止,我已经在我的模型中定义了:
例程.php
class Routine extends Eloquent
{
public function measurements
{
return $this->belongsToMany('Measurement', 'measure_routine', 'routine_id', 'measure_id', 'pool_id')->withPivot('pool_id');
}
}
Measurement.php
class Measurement extends Eloquent
{
public function routines()
{
return $this->belongsToMany('Routine', 'measure_routine')->withPivot('pool_id');
}
}
池.php
class Pool extends Eloquent
{
public function measurement_routine()
{
return $this->hasMany('measure_routine', 'pool_id');
}
}
我想知道如何使用 eloquent 提取 pool_id(或者可能是台球表中的池名称)?
目前我已经尝试在控制器中使用 $data = Routine::has('measurements')->get() ,然后在视图中尝试 {{ $data->pivot->pool_id }} ,但是这导致试图获取非对象错误的属性。
【问题讨论】:
-
如果您还没有完成,您可以为链接表创建模型。
-
就像为 measure_routine 数据透视表创建模型一样?
-
是的,您创建了一个模型
RoutineHasMeasurements,假设这个模型与其他 3 个模型中的每一个都具有 hasMany 关系。现在您还可以检索池名称。