Laravel关系,返回布尔值

时间:2016-07-19 08:34:39

标签: laravel lumen

有没有人弄清楚你是否可以从关系中返回真假?

例如我有状态,我想检查当前用户是否喜欢它。但我想只返回true或false,而不是整个对象与hasOne,因为我不想在JSON响应中返回整个对象。

我已经尝试了

public function isLiked()
{
    return count($this->likes()) > 0;
}

public function likes()
{
    return $this->hasOne("\App\Model\Users\Users","id");
}

但我总是得到

在布尔值上调用成员函数addEagerConstraints()

由于

1 个答案:

答案 0 :(得分:1)

像这样使用

public function isLikedAttribute()//use model mutators
{
    if ( ! array_key_exists('likes', $this->relations)) $this->load('likes');
    $likes = $this->getRelation('likes');
    return count($likes) > 0;
}

public function likes()
{
    return $this->hasOne("\App\Model\Users\Users","id");
}

&安培;来自您的控制器或您刚才访问的其他地方

$YOUR_MODEL_OBJECT->isLiked;//replace $YOUR_MODEL_OBJECT with your model object

参考:https://laravel.com/docs/master/eloquent-mutators#accessors-and-mutators