【发布时间】:2015-04-18 16:03:50
【问题描述】:
我正在为照片帖子写一个网站,我有这些与喜欢相关的功能(它们确定用户是否喜欢特定的帖子)
帖子模型:
public function likes()
{
return $this->hasMany('Like');
}
public function isLiked()
{
return $this->likes()->where('user_id', Auth::user()->id);
}
后控制器功能举例:
public function postsByType($type)
{
if($this->user){
$posts = Post::with('isLiked')->where('type', '=', $type)->paginate(12);
} else {
$posts = Post::where('type', '=', $type)->paginate(12);
}
return $posts;
}
当用户未登录,不运行查询时,有什么方法可以在 MODEL 函数中返回 null?
我想避免在后期控制器中写 if
我想过以下解决方案,但它不起作用......
public function isFollowing()
{
return $this->setRelation('isFollowing', null);
}
收到此错误:
Call to undefined method Illuminate\Database\Query \Builder::addEagerConstraints()
【问题讨论】:
-
当用户未连接时是指用户未登录吗?
-
没错,意思是当 Auth::user()->id 没有设置时