我在Books表和Authors表之间有很多关系。数据透视表(author_book)包含author_id和book_id。
我希望我的用户能够使用简单的搜索表单搜索数据库。每当用户输入关键字时,我想要搜索两个表中的字段。
我需要的是这样的......
return View::make('result')->with('books', Book::with('authors')
->where('title', 'LIKE', '%'.$keyword.'%')
->orWhere('**authors->table->name**', 'LIKE', '%'.$keyword.'%')->get());
我需要一种方法来搜索authors表,并检查关键字是否为作者姓名。
我的作者和书籍模型都建立了这种关系。
任何帮助将不胜感激
答案 0 :(得分:0)
这可能不是理想的解决方案,但对于像这样的复杂查询,我发现简单地使用原始SQL查询更容易。
在这种情况下是这样的:
$result = DB::select(DB::raw("SELECT *
FROM books
INNER JOIN authors
WHERE books.title LIKE '%$keyword%'
OR authors.name LIKE '%$keyword%' "));