我正在处理laravel项目,当我给它where id时,我有一个查询,它给了我正确的关系,但当我使用其他条件时,它没有给我关系。
这是控制器查询
$dogsCheckedIn = Dog::with(['latestActiveVisit'])
->whereNotNull('checked_in')
->whereNull('checked_out')
->orderBy('projected_out_date','asc');
// ->where('id', 21); gives relationship correctly but if i remove it shows the records but did not show me relationship
if(Request::get('ag'))
$dogsCheckedIn->where('appointment_group_id', intval(Request::get('ag')));
$dogsCheckedIn = $dogsCheckedIn->get()
->each(function($dogRecord) {
$dogRecord->record = DogRecord::with('user')->where('dog_id',$dogRecord->id)->whereNotNull('weight')->orderBy('created_at','desc')->first();
});
这是我的模型函数
public function latestActiveVisit()
{
return $this->hasMany(DogVisits::class, 'dog_id', 'id')
->whereNotNull('checked_in')
->whereNull('checked_out')
->select('id', 'created_at', 'dog_id')
->latest('created_at')->take(1);
}
1条答案
按热度按时间afdcj2ne1#
可能与条件添加到查询中的顺序相同。请尝试在添加其他条件之前添加关系的条件。
尝试将控制器查询更改为:
这应该允许您在添加其他条件之前添加关系的条件,这可能会解决问题。