【问题标题】:CakePHP - HABTM with predefined ModelCakePHP - 具有预定义模型的 HABTM
【发布时间】:2011-06-29 10:34:48
【问题描述】:

我有两种型号:Bar HABTM Foo。现在我有 bar_foos 连接表和一些额外的字段。

当我添加带有一些 Foo 关联的新 Bar 或反之亦然时,我需要运行许多验证检查,以确定新关联是否符合犹太教规。检查基于已定义的附加字段和已保存的关联。

我应该在哪里运行这些验证?在 Bar/Foo 控制器中?还是应该创建带有验证规则的 BarsFoo 模型?

当我保持 HABTM 关系以从 Cake 获取所有自动魔法时,我无法找到一种方法来告诉 Cake 使用我自己的预定义 BarsFoo 模型和验证规则。 Cake 创建了自己的虚拟模型并忽略了我的。

或者我应该(在这种特定情况下)将 HABTM 分解为 hasMany-belongsTo-hasMany 关系,在那里我可以使用我自己的 BarsFoo 模型?

【问题讨论】:

    标签: validation cakephp has-and-belongs-to-many


    【解决方案1】:

    您可以使用 with 键定义您的连接模型并在那里创建您的验证:

    public $hasAndBelongsToMany = array(
        'Bar' => array(
            …
            'with' => 'BarFoos'
        )
    );
    

    http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM

    【讨论】:

    • 好吧,我已经尝试过了,但是 Cake 还是忽略了我的模型。我有 bar_foos 表,Cake 会自动为我创建 BarsFoo 模型,但是当我使用 BarsFoo 类创建 bar_foo.php 模型并使用“with => 'BarsFoo'”指定它时,Cake 甚至不会尝试加载该类。
    • 哦,我真傻!我必须在两个模型中都指定“with”。谢谢!现在一切正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    相关资源
    最近更新 更多