亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel Eloquent ORM:可以在不使用 find() 的情況下從兩個表中進行選擇嗎?

Laravel Eloquent ORM:可以在不使用 find() 的情況下從兩個表中進行選擇嗎?

PHP
楊魅力 2023-08-11 11:03:47
基本上我想在 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


查看完整回答
反對 回復 2023-08-11
  • 1 回答
  • 0 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號