0

この 2 つのテーブルを関連付ける方法がわかりません。

私はLaravelとORMが初めてなので、ちょっと難しいです。関連付けようとしている2つのテーブルは次のとおりです。

テーブル テーブルは posts および post_categories と呼ばれます。コードの一部を以下に示します。

class Post extends Eloquent {

public function categories()
{
    return $this->hasOne('PostCategorie');
    }
}

class PostCategorie extends Eloquent {
  protected $table = 'post_categories';

public function post()
{
    return $this->belongsTo('Post', 'pc_id');
    }
}


public function postCreate()
{
    $validator = Validator::make(Input::all(), Post::$rules);

    if ($validator->fails()) 
    {
        return Redirect::action('PostsController@getCreate')->withInput()->withErrors($validator);
    }
    // Else add to DB
    $categories = Input::get('categories');

    $post = new Post;
    $post->user_id = Auth::user()->id;
    $post->title   = Input::get('title');
    $post->text    = Input::get('text');
    $post->categories()->id_1 = $categories[0];
    $post->save();

}

ご覧のとおりです。投稿に値を渡し、保存すると問題ありません...しかし、カテゴリIDを別のテーブルに追加できません...

また、ダミーのエントリを作成し、投稿カテゴリの値を取得しようとしました:

Route::get('/', function()
{
    $post = Post::find(5);
    echo $post->title;
    echo $post->categories()->id_1;
});

しかし、それは失敗しました:

Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$id_1
4

1 に答える 1