【发布时间】:2019-07-09 02:45:37
【问题描述】:
我有以下结构。当用户注册时,他选择了一个国家。他创建了一个帖子。我想搜索具有搜索关键字的特定国家的所有帖子。搜索关键字可以是标题、型号、价格等任何内容。它工作正常。
但是,我也希望能够搜索制作名称。但与其他字段不同,make name 不会直接保存在我的表中,它会保存一个 ID,以便从不同的表中选择 make name。
如何也可以根据品牌名称进行搜索?
模型 - 帖子关系。帖子模型:
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');
}
}
所以基本上我创建了一个帖子。在创作过程中,我可以选择一个品牌。 Post 表保存 mak id。 Make 以 Id、make_name 的形式保存在不同的表中。
发布表:
现在我想根据 make 对帖子表进行查询:
$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);
}
【问题讨论】:
-
make 表的名称是什么?
标签: laravel laravel-5.8