外键的Laravel查询
我有以下结构。当用户注册时,他选择一个国家。他创造了一个职位。我想搜索一个特定国家的所有职位,有搜索关键字。搜索关键字可以是标题、型号、价格或任何内容。它很好用 但是,我也希望能够搜索并生成名称。但与其他字段不同,make name不会直接保存在我的表中,它会保存一个ID,以便从不同的表中拾取make name 如何根据品牌名称进行搜索 模型-帖子关系。后模型:外键的Laravel查询,laravel,laravel-5.8,Laravel,Laravel 5.8,我有以下结构。当用户注册时,他选择一个国家。他创造了一个职位。我想搜索一个特定国家的所有职位,有搜索关键字。搜索关键字可以是标题、型号、价格或任何内容。它很好用 但是,我也希望能够搜索并生成名称。但与其他字段不同,make name不会直接保存在我的表中,它会保存一个ID,以便从不同的表中拾取make name 如何根据品牌名称进行搜索 模型-帖子关系。后模型: class Post extends Model { protected $table = 'posts'; pro
class Post extends Model
{
protected $table = 'posts';
protected $dates = ['status_change'];
public function make_rel()
{
return $this->belongsTo(Make::class, 'make_id' ,'id','make_logo');
}
}
所以基本上我创建了一个帖子。在创建过程中,我可以选择一个make。
Post表格保存mak id。Make作为id、Make\U名称保存在不同的表格中
制作表格:
邮政表格:
现在我想基于make对posts表进行查询:
$posts = Country::where('country_name', $request->input('country'))->first()->posts()->orderBy('status_change','DESC')
->where('status','Published')
->where(function($query) use ($search){
$query->where('title','LIKE','%'.$search.'%');
$query->orWhere('model','LIKE','%'.$search.'%');
$query->orWhere('notes','LIKE','%'.$search.'%');
$query->orWhere('description','LIKE','%'.$search.'%');
})
->paginate(25);
}
您可以使用
whereHas
进行此操作。在->where(函数($query)中使用($search){
块:
->orWhereHas('make_rel', function($query) use($search) {
$query->where('make_name','LIKE','%'.$search.'%');
}
make表的名称是什么?