【问题标题】:Why am I getting next error: Trying to get property of non-object? laravel为什么我会收到下一个错误:尝试获取非对象的属性?拉拉维尔
【发布时间】:2017-03-16 16:28:58
【问题描述】:
class Article extends Model
{       
    protected $fillable = ['category_id','author_id','title','img','description','text'];

    public function user()
    {
        return $this->belongsTo('App\User');
    }    
    public function article_category()
    {
        return $this->belongsTo('App\ArticleCategory');
    }
}

class ArticleCategory extends Model
{    
    protected $table = 'article_categories';    
    protected $fillable = ['name','hide'];    
    public function article()
    {
        return $this->hasMany('App\Article');
    }
}

User model
    public function article()
        {
            return $this->hasMany('App\Article');
        }

为什么我在尝试获取作者姓名和文章类别名称时会出错?

尝试以这种方式显示它: $文章->用户->名称 $article->article_category->名称

无法理解原因:c

【问题讨论】:

  • 因为你拥有的不是一个对象。
  • 如果你尝试 $article->user()->name 你会得到什么
  • @ChrisTownsend 未定义属性:Illuminate\Database\Eloquent\Relations\BelongsTo::$name
  • 你能 dd($artifle->user());并将输出放入您的问题中

标签: php laravel model eloquent


【解决方案1】:

尝试改变

return $this->belongsTo('App\User');

return $this->belongsTo('App\ArticleCategory');

return $this->belongsTo('App\User', 'foreign_key');

return $this->belongsTo('App\ArticleCategory', 'foreign_key);

两者都将收到您在迁移表中提供的正确外键。也许您的外键无法识别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 2021-08-05
    • 1970-01-01
    • 2019-07-08
    • 2019-05-19
    • 1970-01-01
    • 2018-07-11
    • 2016-05-08
    相关资源
    最近更新 更多