Php 正在从ProductColor表中获取颜色ID,但如何从颜色表中获取颜色名称

Php 正在从ProductColor表中获取颜色ID,但如何从颜色表中获取颜色名称,php,laravel,eloquent,Php,Laravel,Eloquent,产品叶片 $product = Products::where('product_slug', $slug)->first(); $productcolours = Productcolour::all()->where('product_id', $product->id); $colour = Colour::all(); 获取颜色名称您应该能够在产品和颜色之间建立关系,例如,将以下内容添加到您的产品模型中(如果它不存在): 如果没有看到您的表定义,我将无法确定上述代码是

产品叶片

$product = Products::where('product_slug', $slug)->first();
$productcolours = Productcolour::all()->where('product_id', $product->id);
$colour = Colour::all();

获取颜色名称

您应该能够在
产品
颜色
之间建立关系,例如,将以下内容添加到您的
产品
模型中(如果它不存在):

如果没有看到您的表定义,我将无法确定上述代码是否能正常工作。目前假设您遵循了Laravel的标准命名约定

然后,您应该能够加载关系:

public function colors()
{
    return $this->belongsToMany(Color::class);
}

仅供参考,今后我建议使用数据库进行过滤,而不是检索所有记录,然后将其向下过滤,即

这:

将成为:

$productcolours = Productcolour::all()->where('product_id', $product->id);

您应该能够在
产品
颜色
之间建立关系,例如,将以下内容添加到您的
产品
模型中(如果尚未存在):

如果没有看到您的表定义,我将无法确定上述代码是否能正常工作。目前假设您遵循了Laravel的标准命名约定

然后,您应该能够加载关系:

public function colors()
{
    return $this->belongsToMany(Color::class);
}

仅供参考,今后我建议使用数据库进行过滤,而不是检索所有记录,然后将其向下过滤,即

这:

将成为:

$productcolours = Productcolour::all()->where('product_id', $product->id);

将以下代码添加到您的产品模型中

$productcolours = Productcolour::where('product_id', $product->id)->get();
当您的产品表
color\u id
与颜色表
id

public function color()
{
    return $this->hasOne('App\Productcolour', 'id', 'color_id');
}
要在前端显示,请使用下面的代码(1是产品id,请使用动态id
$product->id


在控制器中
$color=Products::find(1)->color

将以下代码添加到您的产品型号中

$productcolours = Productcolour::where('product_id', $product->id)->get();
当您的产品表
color\u id
与颜色表
id

public function color()
{
    return $this->hasOne('App\Productcolour', 'id', 'color_id');
}
要在前端显示,请使用下面的代码(1是产品id,请使用动态id
$product->id


在控制器中
$color=Products::find(1)->color

请显示这些表的表定义/迁移。如果不知道数据是什么样子的话,很难说,但看起来您希望从
color::all()中构建一个颜色数组在你的回路中通过键(
color\u id
)查询和引用它我认为你的产品和颜色的关系是多对多的,ProductColor是透视表?您可以添加您的型号吗?以下任一答案是否解决了您的问题,或者您仍然存在问题?请您显示这些表的表定义/迁移。如果不知道您的数据是什么样子,就无法说,但是看起来您需要从
color::all()构建一个颜色数组在循环中按键查询和引用(
color\u id
)我认为您的产品和颜色的关系是多对多的,ProductColor是透视表?您可以添加您的型号吗?以下任一答案解决了您的问题还是您仍有问题?