如果我想加入两个表,我可以这样做:
$books = App\Book::with('author')->get();
问题在于结果有点嵌套。例如。如果我想获得作者的DOB,我必须这样做:
foreach ($books as $book) {
echo $book->author->dob;
}
但是,如果我想要能够做到这一点怎么办?:
foreach ($books as $book) {
echo $book->dob;
}
我怎么可能这样做?我想可能存在冲突dob是book
表和author
表中的列,并且author_dob
表示会更好但是我们假设没有' ta冲突。
我想一个视图可以做到这一点,但有没有办法在Laravel中这样做而无需创建视图?
答案 0 :(得分:2)
$books = DB::table('books')
->join('authors', 'authors.id', '=', 'books.author_id')->get()
实际上你可以用雄辩的方式做同样的事情。这样,您就可以访问Book模型文件中的所有函数和额外参数
App\Book::join('authors', 'authors.id', '=', 'books.author_id')->get()
您可能希望使用leftJoin()
代替join()