laravel5.1 guest / auth的模型关系

时间:2015-09-09 13:40:20

标签: laravel-5 eloquent

我创建了文章模型并添加了方法:

public function brkon()
{
    return $this->hasOne('App\Article\ArticleBrkon', 'articles_id', 'article_id')->where('user_id', '=', (int) Auth::user()->user_id);
}

但是当我是客人时,我看到了错误:

  

尝试获取非对象的属性

我为此改变了brkon:

public function brkon()
{
    if (Auth::guest()) {
            return;
    }
    return $this->hasOne('App\Article\ArticleBrkon', 'articles_id', 'article_id')->where('user_id', '=', (int) Auth::user()->user_id);
}

现在我遇到了这个问题:

  

关系方法必须返回一个类型的对象   照亮\数据库\锋\关系\关系

1 个答案:

答案 0 :(得分:1)

你好作为修补程序,你可以使用

public function brkon()
{
    $userId = 0;
    if (Auth::user()) {
        $userId = Auth::user()->user_id
    }
    return $this->hasOne('App\Article\ArticleBrkon', 'articles_id', 'article_id')->where('user_id', '=', (int) $userId);
}

但我认为您必须更改逻辑并且只允许授权用户调用此模型