【发布时间】:2021-05-29 06:49:02
【问题描述】:
我正在努力使用 Eloquent 查询关系。
例如,我只寻找没有交易的客户约翰。
如何使用 Eloquent 做到这一点?
客户模型关系
public function transactions()
{
return $this->hasMany(Transaction::class);
}
$results = Client::whereDoesntHave('transactions', function ($query) use ($inputFirst, $period) {
$query->where('transactions.period_id', '=', $period->id)
->where('firstname', '=', $inputFirst);
})
->orderBy('id', 'desc')
->get();
一点帮助会很棒。 谢谢
【问题讨论】:
-
您的查询看起来正确,那么您的问题是什么?
-
如果我正确理解了您的问题,您希望客户与名为 John 的客户没有交易?然后你需要使用操作符而不是=。所以你的 where 应该是 where('firstname, '', $inputFirst);对不起,如果这不是你要问的......
-
您的问题仍然令人困惑,请您详细说明并添加模型定义
-
客户端模型关系
public function transactions() { return $this->hasMany(Transaction::class); }很抱歉造成混淆。我只寻找没有交易的客户约翰。现在,Eloquent 给我所有的交易 -
就像@adolfotcar 所说的将 where 子句更改为 '' 而不是 '='
标签: laravel eloquent laravel-6