将阵列数据附加到Laravel模型

时间:2016-04-01 12:06:19

标签: laravel eloquent laravel-5.2

我有一个产品表,其列名为unit_id,我有大约15个单位的数据。我在产品中存储了一个自定义密钥单元,您可以在屏幕截图中查看。

enter image description here

单位数据存储在设置表中,单行,meta_value以json格式保存所有单位数据

enter image description here

现在的问题是我每次都要为产品运行两个查询,需要帮助才能知道更方便。

// For Products
Product::where('id', 1)->first();

// For settings
Settings::where('meta_key', 'product_units')->first();

是否有任何方法可以在产品模型中附加设置数据,这是我们针对多个产品而不是单个产品所遇到的问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试在Products模型https://laravel.com/docs/5.1/eloquent-mutators中使用mutator。

public function getProductUnitsAttribute() {
    return Settings::where('meta_key', 'product_units')->first();
}

所以你可以这样做来获得设置

$product = Product::where('id', 1)->first();
$product->product_units;

但我认为这不是一个好习惯。