有没有人弄清楚你是否可以从关系中返回真假?
例如我有状态,我想检查当前用户是否喜欢它。但我想只返回true或false,而不是整个对象与hasOne,因为我不想在JSON响应中返回整个对象。
我已经尝试了
public function isLiked()
{
return count($this->likes()) > 0;
}
public function likes()
{
return $this->hasOne("\App\Model\Users\Users","id");
}
但我总是得到
在布尔值上调用成员函数addEagerConstraints()
由于
答案 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