[英]Retrieving relationship data in Eloquent ORM (Laravel PHP)
我正在創建Laravel應用,並使用Eloquent ORM從數據庫檢索數據,同時以JSON響應進行響應。 在此示例中,我通過關系(player1,matchRule ...)獲得了與其他一些相關數據的匹配。
public function test() {
$match = Match::where("state", 2)
->with("player1", "player2", "points", "matchRule")->first();
return response()->json($match); // CASE A
return response()->json((object) ["id" => $match->id]); // CASE B
return response()->json((object) ["rule" => $match->match_rule]); // CASE C
}
在情況A中,一切正常,並返回所有相關數據。 例:
{
"id": 7,
"some_other_match_property": "something",
...
"match_rule": {
"rule_1": "something",
"rule_2": "something",
}
}
如果是B,我得到的只是match的ID,它也可以正常工作。
{
"id": 7
}
我是C,我想獲取屬性match_rule
但我得到的是null。 為什么? 如您所見,在情況A中返回整個匹配項時,它存在於$match
對象中。
{
"rule": null
}
乍一看,我可以看到您像這樣加載了matchRule
關系( 駝峰案例 ):
$match = Match::where("state", 2)
->with("player1", "player2", "points", "matchRule")->first();
^^^^^^^^^^
但是然后您訪問的是這樣的關系( 蛇形 ):
return response()->json((object) ["rule" => $match->match_rule]);
^^^^^^^^^^^
這些是不相等的。 嘗試以下方法:
return response()->json((object) ["rule" => $match->matchRule]);
^^^^^^^^^^
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.