检查用户是否在laravel中有密码

时间:2015-08-30 14:58:28

标签: php laravel

我有两种方式注册我的网站:电子邮件或Facebook登录。

在Facebook登录时,用户没有获得密码。在某些情况下我需要阅读以了解用户是否必须输入密码来更改其电子邮件,例如

我想在laravel中返回用户对象时,还返回一个属性has_pass,它将保留此值。 我只想在用户模型中使用一个函数来确定密码是否为空,而不是创建一个新的数据库字段,如下所示:

public function hasPass(){
    if($this->password){
        return true;
    }
    return false;
}

这样可以正常工作,但我希望数据与用户对象一起返回,因此我只需检查$ user-> haspass属性,而不必在每次检查时调用函数hasPass()。那么,我该怎么做呢,这是一个很好的方法吗?

1 个答案:

答案 0 :(得分:2)

get_password使用an accessor

class User extends Eloquent
{
    protected $appends = ['has_password'];

    public function getHasPasswwordAttribute()
    {
        return ! empty($this->attributes['password']);
    }
}

在序列化模型时,将其添加到$appends属性会自动将has_password添加到数组中。