当前位置: 首页 > 知识库问答 >
问题:

在雄辩的ORM(Laravel PHP)中检索关系数据

伯茂才
2023-03-14

我正在创建Laravel应用程序,我正在使用雄辩的ORM从DB检索数据,同时使用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,但我得到空。为什么啊?如您所见,当在A中返回整个匹配时,它存在于$sex对象中。

{
    "rule": null
}

共有1个答案

华甫
2023-03-14

乍一看,我可以看到您像这样加载matchRule关系(驼峰式):

$match = Match::where("state", 2)
    ->with("player1", "player2", "points", "matchRule")->first();
                                            ^^^^^^^^^^

但随后您将像这样访问关系(snake案例):

return response()->json((object) ["rule" => $match->match_rule]);
                                                    ^^^^^^^^^^^

这些并不等同。请尝试以下方法:

return response()->json((object) ["rule" => $match->matchRule]);
                                                    ^^^^^^^^^^
 类似资料:
  • 我正在编写php代码,对于当前的项目,我正在使用laravel框架(带有雄辩的ORM)。在这个项目中,我创建了两个表:用户和任务。我想在这些表之间创建一个“一对多”的关系。因此,一个用户可以有许多任务。在Tasks类中,我创建了方法所有者(): 但是当我以前得到用户名的时候 我得到这个异常:未定义的属性:illumb\Database\Eloquent\Relations\BelongsTo::$

  • 有人能解释一下原因吗?

  • 我有一个表事务与复合主键id,Nom,日期和一个表Cour与Nom作为主键和一个事务有关一个Cour。 我怎样才能得到一个有口才关系的特定交易的课程?

  • 我正在与Laravel 5.4合作。我正在使用雄辩的ORM。我已经创建了以国家和州为单位的表格。二者的描述如下: 国家表: 国家表: 现在,我编写了两个方法来设置状态和国家表之间的关系。 国家型号: 状态模型: 现在,我将创建编辑功能,以便无法获取国家名称。 我已将查询写成 在这里,我得到的只有州数据和国家数据为空。 那么,为了获得州和国家数据,我应该做些什么改变呢?

  • 我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:

  • 我在我的Laravel项目中与雄辩的关系作斗争。 我的数据库中有一个“用户”表和一个“用户行”表。“用户行”表中有一个“用户id”字段,该字段与“用户”中的“id”字段相对应,属于典型的主-明细关系。 用户模型与用户线模型有很多关系。UserLine模型与用户模型具有belongsTo关系。 在我的应用程序中,我有一个包含多个用户行的用户表单。在表单提交期间,可以添加、更改或删除这些用户行。到目前