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


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

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
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!