Я создаю приложение 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 я получаю только id совпадения, и он также отлично работает.
{
"id": 7
}
В случае C я пытаюсь получить свойствоmatch_rule
но я обнуляюсь.Зачем?Как видите, он присутствует в объекте $match
при возврате полного соответствия в случае A.
{
"rule": null
}