我有以下foreach,访问关系 approved_applicants
。我在哪里检查array objects
的数量。
当前条件为我提供了两个按钮,因为DB
必须有两个records
,我想将其限制为一个。
@foreach($candidate->approved_applicants() as $vote)
@if(count($candidate->approved_applicants) >= 2 || $vote->type == 'm')
<button type="submit" class="btn btn-success" disabled="">Approved</button>
@else
<button type="submit" class="btn btn-warning" >Approve</button>
@endif
@endforeach
控制器方法:
$pendingRequests = \App\Applicant::with('approved_applicants')->where('company_name',auth()
->user()->company_name)->get();
关系:
public function approved_applicants(){
return $this->hasMany('App\ApprovedApplicant');
}
我在关系中使用了distinct()
方法,但它没有用。
答案 0 :(得分:0)
我想你可以试试这个:
$pendingRequests = \App\Applicant::with('approved_applicants')->where('company_name',auth()
->user()->company_name)->groupBy('user_id')->get();
和更多详情,请点击此link
希望这对你有用
答案 1 :(得分:0)
请尝试以下解决方案:
$pendingRequests = \App\Applicant::with(['approved_applicants' => function($q) {
$q->groupBy('user_id');
}])->where('company_name',auth()
->user()->company_name)->get();
答案 2 :(得分:0)
它将起作用:
$pendingRequests = \App\Applicant::with(['approved_applicants' => function($query) {
$query->groupBy('user_id');
}])->where('company_name',auth()
->user()->company_name)->get();