簡體   English   中英

正在從 productcolours 表中獲取顏色 ID,但如何從顏色表中獲取顏色名稱

[英]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

獲取顏色名稱

您應該能夠在ProductsColour之間設置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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM