2016-10-19 47 views
0

我的模式有表A有一個B,它又有一個C查詢生成器與()相反的是什麼?

當我獲取所有A時,我可以在我的返回數據中看到而不是對B的引用;我只是得到它的身份證件。這就是我要的。

當我取A->with('B')我得到A和對象引用一直到C!我只想AB引用,不是C(這是一個巨大的對象,膨脹我的反應,幷包含敏感數據)。

我想做這兩件事中的一件。要麼獲取AB(否C),要麼找到遍歷分頁(使用LengthAwarePaginator)對象並剝離不需要的C的方法。

Laravel中可能有這些選項嗎?有沒有其他方法可以達到同樣的效果?

+0

據我所知這不是預期的行爲。你能分享你的B模型嗎? – aleksejjj

+0

@aleksejjj它只是一個空類,只有描述與C的hasOne()關係的方法。 – Julian

+0

我只是運行相同的代碼,它的工作方式與我的預期相同。 'dd(A :: with('b') - > get());'return A + B。 'dd(A :: with('b.c') - > get());'return A + B + C – aleksejjj

回答

0

我終於找到了問題。在我的應用程序中,B不是直接繼承Eloquent,而是在這個父類中追加了一個額外的屬性。在這個屬性的getter裏面有一個對C的調用,所以無論我做了什麼,C總是被這個附加屬性需要!我已經刪除了所有不需要的子類,現在它按預期工作。