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是透视表?您可以添加您的型号吗?以下任一答案解决了您的问题还是您仍有问题?