在Laravel App(博客/帖子)上使用搜索功能。 帖子有多种类型(每个帖子在数据库中都有一个单独的表) 像商务职位,社交生活职位等。
下面是SearchController上的搜索功能
1 0 1
0 0 0
0 0 1
}
所以基本上我的问题是还如何添加其他类型的Post表?
我的主要动机是,当某人搜索任何内容时,应从所有类型的帖子表(业务,自然,生活等)中获取结果。
答案 0 :(得分:0)
您必须在两个表中都保留通用ID
注意:加入是首选方法
$querys = DB::table('Business')->where([['Business.title','like','%'.$query.'%'],['Business.status','=',1]])
->orWhere([['Business.description','like','%'.$query.'%'],['Business.status','=',1]]);
$querys->join('socialtable','socialtable.userid','=','Business.userid');
// Just join the social table
$querys->where('socialtable.title', 'like','%'.$query.'%');
$result = $querys->paginate(10);
答案 1 :(得分:0)
如果您有一个名为Book的模型,如下所示:
class Book extends Model
{
/**
* Get the author that wrote the book.
*/
public function author()
{
return $this->belongsTo('App\Author');
}
}
然后,您可以与这样的作者一起检索所有书籍:
$books = App\Book::with(['author'])->get();
从Laravel文档中查看Eager loading。
答案 2 :(得分:0)
只需在每个字段之前添加表名
$querys = DB::table('Business')->where([['Business.title','like','%'.$query.'%'],['Business.status','=',1]])
->orWhere([['Business.description','like','%'.$query.'%'],['Business.status','=',1]]);
$querys->join('socialtable','socialtable.userid','=','Business.userid');
// Just join the social table
$querys->where('socialtable.title', 'like','%'.$query.'%');
$result = $querys->paginate(10);