【发布时间】:2013-03-25 09:02:34
【问题描述】:
我有以下Schema and Model 设置,还有这个seed data。
我的目标是实现三向关系,这可能是一个错误的术语,但最后,这就是我所说的。
三通如:
- 支票附有代币
- 附加的令牌具有附加值,这些值知道支票->令牌附件。
问题在于从Token 到Value 的关系,其中,当我加载Values 时,他们没有考虑关联的Cheque,因此返回了属于Token 的所有值.
我不知道Value Schema 对于这种三向关系是否正确,因此,我也怀疑属于Cheque 和Token 的Value 模型关系是否正确。
这就是我当前请求模型的方式(摘自设置):
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
难怪那里会产生错误。
如何实现这种三向关系?
【问题讨论】:
标签: php foreign-keys relationship laravel eloquent