このシード データを使用して、次のスキーマとモデルのセットアップがあります。
私の目標は、三者関係を実現することです。これは間違った用語かもしれませんが、最終的にはそう呼んでいます。
次のような 3 方向:
- チェックにはトークンが添付されています
- アタッチされたトークンには、Cheque->Token アタッチメントを認識する値がアタッチされています。
Token
問題は、 からへの関係Value
にあります。ここで、 をロードするとValues
、関連付けられていることを考慮せず、 にCheque
属するすべての値が返されますToken
。
この 3 方向の関係に対してスキーマが正しいかどうかはわかりませんValue
。したがって、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
戻り値の前にa を追加すると、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
そこでエラーが発生するのも不思議ではありません。
どうすればこの三者関係を実現できるでしょうか?