Reputation: 11965
I have a model Job
which is attached to one model Project
.
Here are the class definitions:
class Job extends Model
{
public function project() {
return $this->belongsTo('App\Project');
}
}
class Project extends Model
{
public function jobs() {
return $this->hasMany('App\Job');
}
}
I'm trying to query the Jobs
collection and filter on either jobs.title
or project.title
.
Here is my current search query:
$jobs = Job::where(function($query) use ($searchTerm) {
$query->where('title', 'LIKE', $searchTerm)
->orWhereHas('project', function ($subQuery) use ($searchTerm) {
return $subQuery->where('title', 'LIKE', $searchTerm);
});
})->get();
However, this is returning an error:
Call to undefined method Jenssegers\Mongodb\Query\Builder::getHasCompareKey()
Upvotes: 0
Views: 420
Reputation: 1439
I think you need to clean up your code a bit:
$jobs = Job::where('title', 'LIKE', $searchTerm)
->orWhereHas('project', function ($query) use ($searchTerm) {
$query->where('title', 'LIKE', $searchTerm);
})->get();
Upvotes: 1