我在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表,并检查关键字是否匹配了author名称。
我的作者和书本模型都建立了这种关系。
任何帮助将不胜感激
最佳答案
这可能不是理想的解决方案,但是对于像这样的复杂查询,我发现简单地使用原始SQL查询会更容易。
在这种情况下是这样的:
$result = DB::select(DB::raw("SELECT *
FROM books
INNER JOIN authors
WHERE books.title LIKE '%$keyword%'
OR authors.name LIKE '%$keyword%' "));
关于php - Laravel寻找多对多关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18990656/