HABTM连接表名

时间:2014-08-08 17:21:54

标签: cakephp

如果Recipe HABTM Ingredient关系,name的{​​{1}}为join

是否有返回ingredients_recipes的CakePHP方法或函数?

目前我在AppModel上定义了一个方法 -

the name of joinTable between two models

如果您不理解我的问题,请发表评论。我将尽我所能用我的英语知识清楚地表达出来......

1 个答案:

答案 0 :(得分:1)

没有内置方法可以简单地返回两个HABTM关联模型的连接表名称,没有。

CakePHP在一个方法中生成表名,该方法使用默认值填充关联配置,即Model::_generateAssociation()

// ...

case 'joinTable':
    $tables = array($this->table, $this->{$class}->table);
    sort($tables);
    $data = $tables[0] . '_' . $tables[1];
    break;

// ...

正如你所看到的那样,它的工作方式与你一样,除了它使用字符串连接(更快)和Model::$table属性而不是Model::$name,可能不会返回您期望的结果。

除了name属性的一个小问题,你应该改为使用table,你的代码应该没问题,并返回正确的表名。