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

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

如何查詢獲取mysql數據庫laravel中與特定類別相關的所有產品

如何查詢獲取mysql數據庫laravel中與特定類別相關的所有產品

PHP
小怪獸愛吃肉 2024-01-19 10:02:16
以下是我的類別表:這是產品類別表:這是產品表:我想按特定和單一類別獲取產品并在滑塊中顯示,例如類別為電子的所有產品類別為服裝的產品類別可移動的所有產品我很困惑如何通過連接所有表來查詢和獲取數據。有人可以幫幫我嗎?
查看完整描述

2 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

你可以利用口才和關系。在您的 ProductCategory 模型上執行以下操作:


public function product(){

 return $this->belongsTo('App\Product', 'productId')

}

public function category(){

 return $this->belongsTo('App\Category', 'categoryID')

}

然后你可以像這樣查詢:


ProductCategory::with(['product','category'])->where('categoryId', 191)->get();


查看完整回答
反對 回復 2024-01-19
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

您可以通過在模型中定義關系來實現它,如下所示:


在您的產品模型中定義類別函數


 public function categories() {

    return $this->belongsToMany(Category::class, 'product_categories', 'productId', 'categoryId');

}

類別模型中的相似性定義了產品的關系


public function products() {

    return $this->belongsToMany(Product::class, 'product_categories', 'categoryId', 'productId');

}

在本例中,product_categories 表是一個數據透視表,數據透視表需要遵循一些規則:

  1. 數據透視表應該是兩個表的單數名稱,在您的情況下它應該是product_category表

  2. 數據透視表命名約定應該按字母順序排列,在您的情況下它應該是category_product

  3. 無需在 ppivot 表中創建 id 和 timestamps 列

  4. 您實際上不需要為數據透視表創建模型

另外,這不是規則,而是建議,您的表列應該是蛇形大小寫,例如category_id

在模型中定義這些函數后,您可以按如下方式訪問相關數據:

$product = Product::find(27); //finding product by id

$product->categories;


$category = Category::find(187); //finding category by id 

$category->products;


查看完整回答
反對 回復 2024-01-19
  • 2 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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