Laravel: Ghép thêm cột vào kết quả truy vấn

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Giả sử ta cần lấy đúng chỉ một Subject với các cột id, subjectName, articleId và articleUri, thì vấn đề là articleId và articleUri lại nằm ở bảng Article, mà giữa Subject và Article lại là bảng Topic, thì ta có thể làm như sau để đạt được yêu cầu:

Trước tiên ta lấy các cột id, subjectName và articleId:

$subjects=DB::table('subjects as a')->join('topics as b','a.id','b.subjectId')->join('articles as c','b.id','c.topicId')->select('a.id','subjectName','categoryId',DB::raw('min(c.id) as articleId'))->where('a.status','1')->where('b.status','1')->where('c.status','1')->groupBy('a.id','subjectName','categoryId')->orderBy('subjectRank')->get();

Sau đó ta ta ghép thêm cột articleUri vào kết quả ở trên như sau:

foreach ($subjects as $subject) {
  $subject->articleUri=Article::findOrFail($subject->articleId)->articleUri;
}

» Tiếp: Cách kiểm tra phiên bản Laravel
« Trước: Cách lấy mỗi Subject một Article đầu tiên với quan hệ Topic
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!