[英]Colour ID is being fetched from productcolours table but how to get colour name from colours table
$product = Products::where('product_slug', $slug)->first();
$productcolours = Productcolour::all()->where('product_id', $product->id);
$colour = Colour::all();
產品.刀片
@foreach($productcolours as $productcolour)
{{$productcolour->color_id}}
@endforeach
獲取顏色名稱
您應該能夠在Products
和Colour
之間設置belongsToMany關系,例如將以下內容添加到您的Products
模型中(如果它尚不存在):
public function colors()
{
return $this->belongsToMany(Color::class);
}
如果沒有看到您的表定義,我將無法確定上述代碼將按原樣工作。 目前假設您已遵循 Laravel 的標准命名約定。
那么你應該能夠簡單地加載關系:
$product = Products::with('colors')->where('product_slug', $slug)->first();
@foreach($product->colors as $color)
{{ $color->name }}
@endforeach
僅供參考,將來我會建議使用數據庫進行過濾,而不是檢索所有記錄然后將它們過濾掉,即
這個:
$productcolours = Productcolour::all()->where('product_id', $product->id);
會成為:
$productcolours = Productcolour::where('product_id', $product->id)->get();
將以下代碼添加到您的產品模型中
public function color()
{
return $this->hasOne('App\Productcolour', 'id', 'color_id');
}
當您的產品表color_id
與顏色表id
匹配時,上面的代碼將起作用
在前端使用下面的代碼顯示(1 是產品 ID,使用您的動態 ID $product->id
)
{{Products::find(1)->color}}
或在控制器$colour = Products::find(1)->color;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.