gpt4 book ai didi

php - Laravel 5 预加载 belongsTo 关系

转载 作者:可可西里 更新时间:2023-11-01 00:19:51 25 4
gpt4 key购买 nike

我在使用 Laravel 5 和 Eloquent 时遇到问题。我有 3 个模型,分别称为 Ad、AdEngine 和 Engine:

class Ad 
{
...
public function engineAd()
{
return $this->belongsTo('App\Models\EngineAd', 'engine_ad_id', 'id');
}
...
}

class EngineAd
{
...
public function engine()
{
return $this->belongsTo('App\Models\Engine', 'engine_id', 'id');
}
...
}

class Engine {...}

在我的广告类中,我有一个名为 title 的方法,它使用 belongsTo 关系,如下所示:

public function title() 
{
return $this->engineAd->engine->title;
}

对于第一个关系广告 -> AdEngine,我使用预加载来获取所有 AdEngine:

$ads = Ad::with('engineAd');

但是对于 AdEngine -> Engine 的关系,Laravel 会为每次迭代生成一个额外的查询,我可以在这里使用预先加载或类似的东西吗?

select * from `engine` where `engine`.`id` = '1' limit 1
select * from `engine` where `engine`.`id` = '2' limit 1
select * from `engine` where `engine`.`id` = '3' limit 1

谢谢。

最佳答案

尝试使用 $ads=Ad::with('engineAd.engine')

关于php - Laravel 5 预加载 belongsTo 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31594014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com