CakePHP - 具有预定义模型的HABTM

时间:2011-06-29 10:34:49

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

我有两个模特:Bar HABTM Foo。现在我有bars_foos连接表和一些额外的字段。

当我添加带有一些Foo关联的新Bar时,反之亦然,我需要运行许多验证检查,无论新关联是否为Kosher。检查基于已定义的附加字段和已保存的关联。

我应该在哪里运行这些验证?在Bar / Foo控制器中?或者我应该使用验证规则创建BarsFoo模型吗?

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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