2017-03-16 3 views
0
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'); 
     } 

Warum erhalte ich einen Fehler, wenn ich versuche, den Namen des Autors und den Namen der Artikelkategorie zu erhalten?Warum bekomme ich den nächsten Fehler: Versuch, die Eigenschaft von Nicht-Objekt zu bekommen? laravel

es im Hinblick auf diese Weise zu erhalten Versuch: $ Artikel-> user-> Name $ Artikel-> article_category-> name

kann den Grund nicht verstehen: c

+0

Weil, was Sie haben, ist kein Objekt. –

+0

Was bekommen Sie, wenn Sie versuchen $ article-> user() -> name –

+0

@ChrisTownsend Undefinierte Eigenschaft: Illuminate \ Datenbank \ Eloquent \ Relations \ BelongsTo :: $ name – Batmannn

Antwort

0

Versuchen zu ändern die

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

und

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

zu

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

und

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

Beide werden den richtig Fremdschlüssel erhalten, die Sie in Ihren Tabellen auf Migrationen bieten. Vielleicht werden Ihre Fremdschlüssel nicht erkannt.

+0

Ja, das Problem war mit fremden Schlüsseln, danke! (: – Batmannn

+0

Nett, bitte! – Ramones

Verwandte Themen