Laravel 雄辩的渴望负载双重关系

Laravel 雄辩的渴望负载双重关系,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,这件事一直困扰着我,谷歌也没有任何帮助。我有两个模特,一个舞蹈模特和一个作家模特。这种关系是一个作家可以有很多舞蹈。问题在于,这些物体之间实际上有两种关系,一种是原始作者,另一种是后来被认为重建了舞蹈的作者(毕竟,这些都是历史舞蹈)。对于使用普通外键的关系,我可以使用load()函数进行快速加载,但我无法找到如何快速加载使用不同名称外键的关系 如何快速加载第二个关系?使用不同的外键建立关系时,必须在关系中指定要使用的键…return$this->hasOne('Author','foreign

这件事一直困扰着我,谷歌也没有任何帮助。我有两个模特,一个舞蹈模特和一个作家模特。这种关系是一个作家可以有很多舞蹈。问题在于,这些物体之间实际上有两种关系,一种是原始作者,另一种是后来被认为重建了舞蹈的作者(毕竟,这些都是历史舞蹈)。对于使用普通外键的关系,我可以使用
load()
函数进行快速加载,但我无法找到如何快速加载使用不同名称外键的关系


如何快速加载第二个关系?

使用不同的外键建立关系时,必须在关系中指定要使用的键…
return$this->hasOne('Author','foreign key')

如果我理解你的问题,你想和两个作者建立关系,在同一个作者表中

那么可能是这样的吧??(将
外键
替换为表格字段)

然后像这样检索它…
($id是您的舞蹈id)


但老实说,我从来没有试过和一张桌子有双重关系……如果对你有效,请告诉我。:)我很感兴趣。

当使用不同的外键建立关系时,您必须在关系中指定要使用的键…
return$this->hasOne('Author','foreign key')

如果我理解你的问题,你想和两个作者建立关系,在同一个作者表中

那么可能是这样的吧??(将
外键
替换为表格字段)

然后像这样检索它…
($id是您的舞蹈id)

但老实说,我从来没有试过和一张桌子有双重关系……如果对你有效,请告诉我。:)我很感兴趣。

您可以这样做:

$dance = ModelName::query()
    ->with('eagerNameOne')
    ->with('eagerNameTwo')
    ->find($id);
其中添加了
::query()
,仅用于将所有渴望放在同一标识级别。

您可以执行以下操作:

$dance = ModelName::query()
    ->with('eagerNameOne')
    ->with('eagerNameTwo')
    ->find($id);

其中添加了
::query()
,只是为了将所有的渴望都放在同一个识别级别上。

你必须发布你的代码,如果有人需要帮助,你必须发布你的代码,如果有人需要帮助,只是想让你知道我正在测试它,但我不想接受答案,至少在我确认了一个有效的语法之前,没有确认,也没有说明真正的解决方案最终会有什么不同。不过,到目前为止,它看起来不错。终于到了一个我可以肯定地测试它的程度。是的,这对我有用。我误解了
with()
的文档,认为您为它提供了模型名,实际上您为它提供了返回关系的函数名。注意:您的示例应该更新为“public function orig_author”,而不是“public class orig_author”。)很高兴它能为你工作:)……但是哇,我不敢相信我错过了类/函数的东西……我只是想让你知道我正在测试它,但我不想接受答案,至少在我确认一个有效语法之前,没有确认或者没有一些注释说明真正的解决方案是如何以稍微不同的方式结束的。不过,到目前为止,它看起来不错。终于到了一个我可以肯定地测试它的程度。是的,这对我有用。我误解了
with()
的文档,认为您为它提供了模型名,实际上您为它提供了返回关系的函数名。注意:您的示例应该更新为“public function orig_author”,而不是“public class orig_author”。)很高兴它对你有用:)……但是哇,我真不敢相信我错过了那个课程/功能的东西……哈哈
$dance = ModelName::query()
    ->with('eagerNameOne')
    ->with('eagerNameTwo')
    ->find($id);