0

我在 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());

我需要一种方法来搜索作者表并检查关键字是否匹配作者姓名。

该关系在我的作者和书籍模型中都建立了。

任何帮助将不胜感激

4

1 回答 1

0

这可能不是理想的解决方案,但对于像这样的复杂查询,我发现简单地使用原始 SQL 查询更容易。

在这种情况下是这样的:

$result = DB::select(DB::raw("SELECT * 
                              FROM books 
                              INNER JOIN authors 
                              WHERE books.title LIKE '%$keyword%'
                              OR authors.name LIKE '%$keyword%' "));
于 2013-09-24T20:40:38.093 回答