ORM,CRUD和使用FuelPHP插入具有多对多关系的记录

时间:2012-03-21 19:38:18

标签: fuelphp

对FuelPHP来说是全新的我有几个问题......

我开始使用Oils脚手架功能创建一个简单的博客应用程序。之后,我在ORM文档之后设置了表格之间的所有关系(表格称为“帖子”,“类别”和“categories_posts”)。 Everthing完美地工作并且到目前为止受到尊重,例如选择关系数据(帖子及其相关类别)。

但现在我不得不使用Oil生成的表单创建新帖子。我已对其进行了修改,并为存储在数据库中的每个类别添加了一个复选框。提交表单会在“帖子”表格中插入记录,但不会在“categories_posts”表格中插入记录。

这是正确命名复选框的问题吗?或者我是否需要为'categories_posts'表编写模型?我错过了什么?

1 个答案:

答案 0 :(得分:1)

您无需为 categories_posts 表创建模型。

Controller_Posts 中的 action_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 */
}

您可以在documentation上查看建立和打破多个关系的示例。