将属性添加到模型

时间:2013-05-31 06:53:03

标签: laravel laravel-4 eloquent

我的用户数据库中有四列和一个配置变量。在我看来,我需要显示这些列的总和除以变量 - 简单到足以计算,但理想情况下我希望将结果作为属性存储在模型中。

基本上要避免这样做:

$user = Auth::user();
$user->setPercent();

dd($user->percent);

我想要做的是自动设置百分比属性,但我不知道该怎么做。我已经尝试重写模型构造函数,但是那时还没有检索到用户的数据。

由于

2 个答案:

答案 0 :(得分:2)

要创建您只需要向您的用户模型添加这样的方法:

class User extends BaseModel implements UserInterface, RemindableInterface {

    public function getPercentAttribute($value)
    {
        /// do your magic

        return $yourMagicValue
    }

}

按照您所说的方式使用它:

$user->percent

答案 1 :(得分:0)

如果你想在创建对象时拥有这个属性,请执行:

public function __construct($attributes = array())
{
    if (!isset($this->percent))
        $this->percent = $this->setPercent();

    parent::__construct($attributes);       
}

这对我有用