[英]eloquent ORM (laravel): select from two tables associated with pivot table
[英]Laravel Eloquent ORM: Select from two tables without using find() possible?
基本上,考慮到一對多的關系,我想在 mysql 的兩個表中運行一個非常簡單的數據庫 select 查詢。
類別:此表包含所有產品類別。 主鍵是 "id" 。 它有一列“url”,其中包含如何訪問該類別的字符串,例如“greeting-cards”。
products :此表包含所有產品,而每個產品都有一個類別 ID。 主鍵是“id”。 它有一列“category_id”,表示產品對應的類別的id。
因此,根據 Eloquent ORM 的文檔,我這樣做了:
$products = \App\Category::find($CATEGORY_ID)->products);
它的工作就像一個魅力。
現在的問題是:訪問網頁時,URL 看起來不是這樣的:
www.domain.tld/categories/123
但是,由於 SEO,它看起來像這樣:
www.domain.tld/categories/greeting-cards
因此,我像這樣修改了數據庫查詢:
$products = \App\Category::where('url', $category)->products);
但這不起作用! 我是否正確地看到我必須使用 find() 並在這里放置 where() 方法是錯誤的? 在 Eloquent 中還有其他方法可以做到這一點嗎? 我不喜歡使用第二個數據庫查詢來獲取相應類別 url 的 ID,然后將此 id 粘貼到數據庫查詢中......我知道這是可能的,但我認為應該有更優雅的方法Eloquent?
太感謝了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.