laravel 4.2雄辩的关系 - 想要返回额外的数据

时间:2016-07-21 13:24:28

标签: laravel orm eloquent

我有1:1的关系消息可以有一个作者(实际上是用户模型),

models/message.php

public function author()
    {
        return $this->hasOne('User', 'id', 'user_id');
    }

这很好,我在这种关系中得到了用户模型,但是我想在关系中为模型返回添加一个属性,基本上我想检查用户模型是否有密码值,如果它没有t将名为guest的属性设置为true。

这可能吗?

2 个答案:

答案 0 :(得分:1)

你可以这样做

public function author()
{
    $user = $this->hasOne('User', 'id', 'user_id');
    if($user->password == "")
    {
       $user['guest'] = 1; //// or something
    }
    return $user;
}

快速破解希望这可以帮助你

答案 1 :(得分:0)

通常,密码字段在用户模型中受到限制,如下所示:

/**
 * The attributes excluded from the model's JSON form.
 *
 * @var array
 */
protected $hidden = array('password', 'remember_token');

如果我理解正确,您希望通过关系从用户模型中获取密码值。您可以删除密码'来自用户模型中的$ hidden数组,但建议不要这样做,因为您的密码字段可以修改,这可能会给您的应用程序安全性带来一些问题。删除密码'从$ hidden数组中,您将可以访问此字段。