基本上我想在 mysql 中的兩個表中運行一個非常簡單的數據庫選擇查詢,考慮一對多關系。categories:該表包含所有產品類別。主鍵是“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 粘貼到數據庫查詢中...我知道這是可能的,但我認為應該有更優雅的方法雄辯?太感謝了!
1 回答

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
您必須檢索模型才能使用其關系。
如果你想使用where()
只需調用first()
:
例子:
\App\Category::where('url',?$category)->first()->products
- 1 回答
- 0 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消