当您想要查询与模型相关的模型关系时,在Laravel / Eloquent中执行相关查询的最佳/正确方法是什么。
例如: 书籍有很多印刷品 印刷有一个出版商
我想查找给定发布商的所有图书。
XmlTextWriter writer = new XmlTextWriter(filePath, Encoding.UTF8);
w.Formatting = Formatting.Indented;
有关如何设置的任何建议吗?
由于
更新
是否无法在模型中进行设置,使用hasMany / ManyThrough创建" magic"吸气剂?
模型看起来像这样
书籍 - ID - 标题
打印 - ID - book_id - publisher_id - author_id
出版商 - ID - 姓名
作者 - ID - 姓名
答案 0 :(得分:1)
首先设置正确的关系。 Book
有很多Printing
。 Printing
属于Publisher
。
Book::whereHas('printings', function($q) use($id) {
$q->where('publisher_id', $id);
})->get();
答案 1 :(得分:0)
通常这样做:
Books::with(['printings' => function ($q) use ($id) {
// Query on the relationship
$q->where('publishers', $id);
}])->get();
修改强>
我误解了这个问题。正如@AlexeyMezenin回答的那样,你要找的是->whereHas
。
Books::whereHas('printings', function ($q) use ($id) {
// Query on the relationship
$q->where('publishers', $id);
})->get();