从数据库中返回带有爆炸列的产品列

时间:2019-01-24 19:30:12

标签: php laravel eloquent

大家好,在我的“产品”表中,我都有product_properties,它们应该作为数组与其他我可以做的列一起返回

$Product = Product::find(33);
$properties = explode(",", ($Product ->product_properties));

但是我将获得product_properties作为数组,但不会返回其他产品列https://prnt.sc/mbp3tk,我所需要做的就是将product_properties作为具有其他列的数组返回,例如图像https://prnt.sc/mbp2yh,但在图像中,product_properties不是数组

2 个答案:

答案 0 :(得分:0)

好吧,对我来说,这似乎是一个JSON对象。您是否尝试将其编码/解码为JSON对象? Check the documentation if you like

答案 1 :(得分:0)

假设product_properties是一个数组,然后再将其保存到数据库中,则可以使用模型上的$casts属性:

$casts = ['product_properties' => 'array'];

这意味着您可以在模型上将product_properties设置为数组,并将其转换为JSON以存储到数据库,然后当您访问模型上的属性时,它将是一个数组例如

$product->product_properties = ['foo', 'bar'];
$product->save();

或者,如果您只想更改模型上的属性,而又没有雄辩地将其转换为将其存储到数据库中,则可以使用accessor来代替:

public function  getProductPropertiesAttribute($properties)
{
    return explode(',', $properties);
}