Laravel关系截然不同

时间:2017-08-10 10:39:21

标签: php mysql laravel eloquent

我有以下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()方法,但它没有用。

3 个答案:

答案 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();