我正在嘗試按產品 ID 獲取產品屬性,如下所示
$data['product']= Product::select(
'products.*',
'product_attributes.id as product_attribute_id',
'product_attributes.name as product_attribute_name',
'product_attributes.value as product_attribute_value'
)
->leftjoin('product_attributes','product_attributes.product_id','=','products.id')
->where('products.id','=',$request['id'])
->get();
下面是我的屬性表結構

現在發生的情況是,當我嘗試獲取產品屬性時,它只回傳我的一個屬性(屬性表中的第一條記錄)
有人可以幫助我如何獲取任何給定的所有屬性 product_id
編輯 ::
剛剛注意到當我轉儲資料時它回傳 3 個記錄(索引),每個索引都有一個屬性值和產品資料(產品資料是重復的),我只有三個屬性條目,所以它給了我 3 個索引,
uj5u.com熱心網友回復:
請嘗試使用關系。
在產品模型中定義屬性關系。
public function attributes()
{
return $this->hasMany(Attribute::class)
}
所以現在查詢會很容易。作為
Product::with('attributes')->findOrFail($productId);
重要檔案,
https://laravel.com/docs/8.x/migrations#foreign-key-constraints
https://laravel.com/docs/8.x/eloquent-relationships
uj5u.com熱心網友回復:
試試這個,我認為它適用于你的情況。
$data['product']= Product::find($request['id']);
$data['product_attributes'] = ProductAttributes::where('product_id','=',$request['id'])
->get();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/315253.html
上一篇:MySQL洗掉與加入和計數
下一篇:我在同時使用leftjoin和groupby時遇到問題。我有多行具有相同user_id的資料,所以我想使用groupby
