0

FuelPHPに完全に慣れていないので、いくつか質問があります...

Oilsのスキャフォールディング機能を使用して簡単なブログアプリケーションの作成を開始しました。その後、ORMドキュメントに従ってテーブル間のすべての関係を設定しました(テーブルは「posts」、「categories」、「categories_posts」と呼ばれます)。リレーション(投稿とそれに関連するカテゴリ)を使用してデータを選択するなど、これまでのところすべてが完璧に機能します。

しかし今、私はOilによって生成されたフォームを使用して新しい投稿を作成することに固執しています。私はそれを変更し、DBに保存されているすべてのカテゴリのチェックボックスを追加しました。フォームを送信すると、レコードは「posts」テーブルに挿入されますが、「categories_posts」テーブルには挿入されません。

これは、チェックボックスに正しく名前を付けることの問題ですか?または、「categories_posts」テーブルのモデルを作成する必要がありますか?私は何が欠けていますか?

4

1 に答える 1

1

category_postsテーブルのモデルを作成する必要はありません。

Controller_Postsaction_create()メソッドでは、データベース挿入コードは次のようになります。

try
{
    $post = Model_Post::forge();

    $post->title = Input::post('title');
    $post->text = Input::post('text');

    /* the next line will create the relation between the two tables */
    $post->categories[] = Model_Category::find(Input::post('category_id'));

    if ($post and $post->save())
    {
        /* the post has been saved */
    }
    else
    {
        /* something went wrong */
    }
}
catch (\Orm\ValidationFailed $e)
{
    /* validation error */
}

ドキュメントでhas-many関係を確立および解除するための例を確認できます。

于 2012-03-21T22:27:14.287 に答える