我有2个版本的应用程序,一个在本地使用MySQL,另一个是使用PostgreSQL在Heroku中构建
计划是让搜索表单能够从不同的表中查找数据
该表格是书籍,作家,类别和出版商
控制器
public function search(Request $request)
{
$keyword = $request->input('keyword');
// multiple query from different table
$query = Book::where('judul','like','%'.$keyword.'%')
->orWhere('label','like','%'.$keyword.'%')
->orWhere('isbn','like','%'.$keyword.'%')
->orWhere('status', 'like', '%'.$keyword.'%')
->orWhereHas('writter', function ($query) use ($keyword) {
$query->where('nama_penulis', 'like', '%'.$keyword.'%');
})
->orWhereHas('category', function ($query) use ($keyword) {
$query->where('nama_kategori', 'like', '%'.$keyword.'%');
})
->orWhereHas('publisher', function ($query) use ($keyword) {
$query->where('nama_penerbit', 'like', '%'.$keyword.'%');
})
;
$book_list = $query->paginate(5);
$pagination = $book_list->appends($request->except('page'));
$total_book = $book_list->total();
return view('dashboards.index', compact('book_list', 'keyword', 'pagination', 'total_book', 'nama_penulis'));
}
表单就像本地的魅力一样(使用我的MySQL),但是当我使用Postgres时,搜索表单只能从books表中获取。
我想知道是什么让postgres忽略了我的代码
答案 0 :(得分:0)
Laracast上的某个人向我解释问题来自like
对于Postgres 区分大小,这就是为什么我的代码无效。
如果您遇到同样的问题,我建议您使用ilike
使POstgres不敏感。
或者您可以尝试whereRaw
替代方式。