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