{"id":9942,"date":"2024-03-14T10:22:17","date_gmt":"2024-03-14T10:22:17","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/9942-2\/"},"modified":"2024-03-20T16:42:52","modified_gmt":"2024-03-20T16:42:52","slug":"9942-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/9942-2\/","title":{"rendered":""},"content":{"rendered":"<p>In Laravel, performing a multi-table join query can be achieved using Eloquent ORM. Here is an example code where we have two tables, posts and comments, and we need to retrieve each post along with all associated comments.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ \u5728Post\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb<\/span>\r\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Post<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title\">Model<\/span>\r\n<\/span>{\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">comments<\/span>(<span class=\"hljs-params\"><\/span>)\r\n    <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-variable language_\">$this<\/span>-&gt;<span class=\"hljs-title function_ invoke__\">hasMany<\/span>(<span class=\"hljs-title class_\">Comment<\/span>::<span class=\"hljs-variable language_\">class<\/span>);\r\n    }\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u5728Comment\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb<\/span>\r\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Comment<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title\">Model<\/span>\r\n<\/span>{\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">post<\/span>(<span class=\"hljs-params\"><\/span>)\r\n    <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-variable language_\">$this<\/span>-&gt;<span class=\"hljs-title function_ invoke__\">belongsTo<\/span>(<span class=\"hljs-title class_\">Post<\/span>::<span class=\"hljs-variable language_\">class<\/span>);\r\n    }\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u5728\u63a7\u5236\u5668\u4e2d\u8fdb\u884c\u8054\u5408\u67e5\u8be2<\/span>\r\n<span class=\"hljs-variable\">$posts<\/span> = <span class=\"hljs-title class_\">Post<\/span>::<span class=\"hljs-title function_ invoke__\">with<\/span>(<span class=\"hljs-string\">'comments'<\/span>)-&gt;<span class=\"hljs-title function_ invoke__\">get<\/span>();\r\n\r\n<span class=\"hljs-comment\">\/\/ \u904d\u5386\u7ed3\u679c<\/span>\r\n<span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-variable\">$posts<\/span> <span class=\"hljs-keyword\">as<\/span> <span class=\"hljs-variable\">$post<\/span>) {\r\n    <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$post<\/span>-&gt;title;\r\n\r\n    <span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-variable\">$post<\/span>-&gt;comments <span class=\"hljs-keyword\">as<\/span> <span class=\"hljs-variable\">$comment<\/span>) {\r\n        <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$comment<\/span>-&gt;content;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the code above, the with method of Eloquent ORM is used for performing relational queries. By defining the relationships between models, it becomes easy to execute multi-table join queries.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Laravel, performing a multi-table join query can be achieved using Eloquent ORM. Here is an example code where we have two tables, posts and comments, and we need to retrieve each post along with all associated comments. \/\/ \u5728Post\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb class Post extends Model { public function comments() { return $this-&gt;hasMany(Comment::class); } } \/\/ \u5728Comment\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-9942","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>- Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/9942-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:description\" content=\"In Laravel, performing a multi-table join query can be achieved using Eloquent ORM. Here is an example code where we have two tables, posts and comments, and we need to retrieve each post along with all associated comments. \/\/ \u5728Post\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb class Post extends Model { public function comments() { return $this-&gt;hasMany(Comment::class); } } \/\/ \u5728Comment\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/9942-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T10:22:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-20T16:42:52+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Isabella Edwards\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/9942-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/9942-2\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"No title\",\"datePublished\":\"2024-03-14T10:22:17+00:00\",\"dateModified\":\"2024-03-20T16:42:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/9942-2\/\"},\"wordCount\":68,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/9942-2\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/9942-2\/\",\"name\":\"- Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T10:22:17+00:00\",\"dateModified\":\"2024-03-20T16:42:52+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/9942-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"- Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/9942-2\/","og_locale":"en_US","og_type":"article","og_description":"In Laravel, performing a multi-table join query can be achieved using Eloquent ORM. Here is an example code where we have two tables, posts and comments, and we need to retrieve each post along with all associated comments. \/\/ \u5728Post\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb class Post extends Model { public function comments() { return $this-&gt;hasMany(Comment::class); } } \/\/ \u5728Comment\u6a21\u578b\u4e2d\u5b9a\u4e49\u5173\u8054\u5173\u7cfb [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/9942-2\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T10:22:17+00:00","article_modified_time":"2024-03-20T16:42:52+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/9942-2\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/9942-2\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"No title","datePublished":"2024-03-14T10:22:17+00:00","dateModified":"2024-03-20T16:42:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/9942-2\/"},"wordCount":68,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/9942-2\/","url":"https:\/\/www.silicloud.com\/blog\/9942-2\/","name":"- Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T10:22:17+00:00","dateModified":"2024-03-20T16:42:52+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/9942-2\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/9942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=9942"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/9942\/revisions"}],"predecessor-version":[{"id":43144,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/9942\/revisions\/43144"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=9942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=9942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=9942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}