【问题标题】:how to retrieve element from pivot table如何从数据透视表中检索元素
【发布时间】:2020-04-19 06:48:49
【问题描述】:

我在 job_seeker 和 job_offer 之间有多对多的关系(数据透视表 =“job_seeker_job_offer) 我有页面显示特定雇主的所有工作机会如何检索附加到特定工作机会的工作求职者的数量

显示招聘信息的功能

 public function show_jobs($id){
        // $categories=Category::all();
        $job_offer_all=Job_offer::all();
        $employer=Employer::find($id);
        $job_offers=Job_offer::where('employer_id',$employer_id)->with('employer')->get();
        return view('employer.my_jobs',compact('employer_id','employer','job_offers','n_applicant'));
       }

将求职者与工作机会联系起来的功能

public function send_offer($id,$employer_id,$offer_id){
    $job_seeker=Job_seeker::find($id);
    $job_offer=Job_offer::find($offer_id);
    $employer=Employer::find($employer_id);
    // Notification::route('mail', $employer->email)
    // ->notify(new submit_job_demand($job_seeker));
    $job_seeker->job_offer()->attach($job_offer->id);

    }

【问题讨论】:

  • 为什么job_seeker -> job_offer,多对多?
  • 如果你设置的关系正确,那么你可以使用$job_offer->job_seeker;
  • @arun 是的,我想实现这个,但只是为了检索我正在寻找的特定工作机会
  • @ijames 因为每个job_seeker 可以有很多job_offers,反之亦然

标签: laravel eloquent many-to-many relationship


【解决方案1】:

假设您在两个方向都设置了关系,您可以使用withCount 方法来获取关系的计数:

$jobOffers = JobOffer::where('employer_id', $employer_id)
    ->withCount('job_seekers')
    ->with('employer')
    ->get();

foreach ($jobOffers as $offer) {
    echo $offer->job_seekers_count;
}

Laravel 6.x Docs - Eloquent - Relationships - Counting Related Models

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2015-09-02
    • 2021-01-22
    • 1970-01-01
    • 2014-02-12
    • 2015-01-27
    • 2022-01-15
    相关资源
    最近更新 更多