【发布时间】:2020-03-19 07:52:04
【问题描述】:
我正在使用 Laravel 6.2 开发一个项目。我有两个模型。
- 工作
- 公司
我想要做的是获得所有职位匹配something 并且company 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);
}
【问题讨论】:
-
你好,在你的情况下你必须`->get();`
标签: php laravel eloquent laravel-6.2