2017-02-07 19 views
-1

one-to-oneの関係はPostCategoryです。私は列を説明しようとしましょう。 Post columnsLaravelは関係を使用してデータを取得します

| id | pr_name | pr_description | ..... | `category_id` 

そしてここでは、だから、私は何をしようとしていることは次のとおりであるCategory columns

| id | name 

です。カテゴリは既に私によって定義されており、カテゴリの名前のみを持ちます。 Blade.phpファイルのカテゴリ名を取得するには、id:$post->category->nameのようなIDを使用します。しかし、私はエラー:Trying to get property of non-objectを取得します。ここに私のモデルがあります:ポストのモデル

class Post extends Model 
{ 
    public function category() 
    { 
     return $this->hasOne('App\Like','id','category_id'); // 'id' is foreign key, 
                  // 'category_id' is local key 
    } 
} 

カテゴリーのモデル:

class Category extends Model 
{ 
    public function post() 
    { 
     return $this->belongTo('App\Post'); 
    } 
} 
+0

私はあなたが親と子を混同だと思います。これは1つのカテゴリに複数の投稿があるため、1対多の関係です。これは表のデザインに反映されています。ポスト・テーブルの外部キーとしてカテゴリーIDがあります。 – Shadow

+0

私はその関係を試みました。しかし、どのようにポストを使ってカテゴリの名前を得ることができますか?私は: 'category-> $ post-> name'を意味する –

+0

' category'のモデルが 'Like'と呼ばれるのはなぜですか? –

答えて

0

categoryLikeを変更しました。そして、の関係、カテゴリーhasOne('App\Post')ポストは、モデルbelongsTo('App\Category')

関連する問題