簡體   English   中英

Laravel 6.2:Laravel “with” 不適用於條件

[英]Laravel 6.2: Laravel "with" not working with condition

我正在 Laravel 6.2 中開發一個項目。 我有兩個模型。

  1. 工作
  2. 公司

我想要做的是讓所有的工作,其中職位相匹配somethingcompany city等於something 問題是,它得到了公司的所有工作,但如果我指定了錯誤的company city ,它仍然會得到記錄。 總之里面的條件with不工作。 到目前為止我所做的:

模型 > Job.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Job extends Model
{
    // user
    public function user()
    {
        return $this->belongsTo('App\User');
    }

    // company
    public function company()
    {
        return $this->belongsTo('App\Company');
    }
}

模型 > Company.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Company extends Model
{
    // user
    public function user()
    {
        return $this->belongsTo('App\User');
    }

    // job
    public function job()
    {
        return $this->hasMany('App\Job');
    }
}

JobController > 搜索

public function search(Request $request)
{
     $jobs = Job::where('title', 'like', '%' . $request->q . '%')
               ->with(['company' => function($q) use ($request) {
                    $q->where('city', $request->city);
                }])
                ->get();


     return view('jobs.view')->withJobs($jobs);
}

試試下面的功能:

public function search(Request $request)
{
     $jobs = Job::where('title', 'like', '%' . $request->q . '%')
               ->with(['company'])
               ->whereHas('company',function($q) use ($request) {
                    $q->where('city', $request->city);
                })
                ->get();


     return view('jobs.view')->withJobs($jobs);
}

在您的控制器中!

public function search(Request $request)
{
   $jobs = Job::where('title', 'like', '%' . $request->q . '%')
           ->with(['company' => function($q) use ($request) {
                $q->where('city', $request->city)->get();
            }])
            ->get();


   return view('jobs.view')->withJobs($jobs);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM