gpt4 book ai didi

Laravel 急切加载当前模型的值(value)?

转载 作者:行者123 更新时间:2023-12-05 07:08:07 25 4
gpt4 key购买 nike

大家好,有没有可能在急切加载中做到这一点?

Client::with(['relationship' => function($query){ 
$query->whereBetween('created_at', [$client->failed_date, Carbon::now()->endOfDay()])
}])->get();

基本上,我想将我的 CLIENT 模型中的 failed_date 列放入预加载查询中。

最佳答案

由于所有类型的 Eloquent 关系都是通过方法定义的,您可以调用这些方法来获取关系的实例,而无需实际执行关系查询。此外,所有类型的 Eloquent 关系也充当查询构建器,允许您在最终对数据库执行 SQL 之前继续将约束链接到关系查询。

例如。

$clients = Client::where('status', 1)->get();

foreach($clients as $client) {
$relationships = $client->relationship()
->whereBetween('created_at', [$client->failed_date, $client->pass_date]);
}

这样你就可以解决你的问题。

如果您尝试预先加载您的关系,因为预先加载将执行单独的查询,您无法直接访问父表,因此您需要加入它。

public function relationship()
{
return $this->belongsTo(Client::class)
->selectRaw('clients.*')
->join('relationships', 'clients.id', '=', 'relationships.client_id')
->whereRaw("....");
}

关于Laravel 急切加载当前模型的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61936256/

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