从数据库爆炸列

时间:2019-01-24 17:41:33

标签: php laravel eloquent

嗨,我需要从数据库中获取产品并用一行代码对其进行爆炸,因此我可以获取产品数据并将product_properties作为数组在一起

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

2 个答案:

答案 0 :(得分:1)

您可以做到这一点:

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

但是与第一种方法相比,这在可读性方面很差。

答案 1 :(得分:1)

您可以爆炸product_properties以获得数组,也可以在Product模型上定义一个accessor

因此,在App\Product中,添加以下内容:

public function getPropertiesAttribute()
{
    return explode(',', $this->product_properties); 
}

就是这样。现在,每次检索模型时,您都可以通过执行以下操作以数组格式访问其属性:

$product = Product::find(33);
$product->properties; // will output product_properties in an array format

编辑:例如,如果要将此properties(计算的)字段包含在其JSON表示中,则需要在模型的appends属性中对其进行定义。例如。

/**
 * The accessors to append to the model's array form.
 *
 * @var array
 */
protected $appends = ['properties'];

这是工作中的example