【问题标题】:laravel5.1 model relations for guest/authlaravel5.1 来宾/身份验证的模型关系
【发布时间】:2015-12-05 12:27:57
【问题描述】:

我已经创建了文章模型和添加方法:

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);
}

现在我遇到了这个问题:

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

【问题讨论】:

    标签: laravel-5 eloquent


    【解决方案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);
    }
    

    但我认为您必须更改逻辑并在可能的情况下只允许授权用户调用此模型

    【讨论】:

    • 我可以使用它或检查是否是授权用户并加载另一个视图文件。有什么更好的?
    • 我认为最好加载另一个视图文件,因为在这种情况下您不使用查询数据库,它会更快。
    猜你喜欢
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 2016-10-18
    • 2018-04-25
    • 2011-05-25
    • 2011-03-23
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多