我的目标是实现三向关系,这可能是一个错误的术语,但最后,这就是我所说的。
三通如:
- 支票附有代币
- 附加令牌具有附加值,这些值知道支票->令牌附件。
Token
问题在于 from to的关系Value
,当我加载时Values
,他们没有考虑关联Cheque
,因此返回属于 a 的所有值Token
。
我不知道Value
Schema对于这种三向关系是否正确,因此我也怀疑Value
模型关系属于Cheque
并且Token
正确。
这就是我当前请求模型的方式(摘自设置):
Route::get('test', function()
{
$cheque = Cheq_Node::with(array('tokens' => function($query) {
$query->where_sortable(1);
}, 'tokens.values'))->first();
dd( $cheques );
});
我尝试将Token
值参考更改为:
public function values()
{
return $this->has_many('Cheq_Value', 'token_id')->where_node_id($this->pivot->id);
}
但这产生了我:
Trying to get property of non-object
在返回之前添加一个Log::dump( dump($this) )
,显示没有加载模型,只是一个空的 Eloquent 模型:
object(Cheq_Token)[63]
public 'attributes' =>
array (size=0)
empty
public 'original' =>
array (size=0)
empty
public 'relationships' =>
array (size=0)
empty
public 'exists' => boolean false
public 'includes' =>
array (size=1)
'values' => null
难怪那里会产生错误。
我如何使这种三向关系发生?