Laravel Eloquent重写静态查找方法

时间:2014-08-19 15:16:51

标签: php laravel eloquent

由于国际化和其他规则,当我们从数据库中检索对象时,我们需要向对象添加其他字段(例如,名称,本地货币值等),这些字段需要一些&# 39;逻辑'

我希望能够做到

$product = Product::find(1);
echo $product->name;
echo $product->local_cost;

这些是将要显示但未保存的项目,因此我并不过分关注维护关系。

1 个答案:

答案 0 :(得分:2)

向模型中添加getXXXAttribute()Accessor方法

class Product extends BaseModel {

    public function getLocalCostAttribute()
    {
        return $this->base_cost * $this->exchange_rate;
    }
}

然后您可以使用

访问该“属性”
echo $product->local_cost;

请注意,新方法使用local_cost作为方法名称的一部分,但从“蛇案例”切换到“驼峰案例”