belongsToMany通过使用joinTable

时间:2015-08-04 08:54:04

标签: php cakephp cakephp-3.0

使用CakePhp 3.0.10

我想使用belongsTo选项创建through关系,但我也需要设置joinTable选项,因为我的表有前缀

如果我写的话,按照书中的例子:

$this->belongsToMany('Courses', [
    'through' => 'CourseMemberships',
    'joinTable' => 'prefix_course_memberships',

]);

我收到错误:

1146 Table 'course_memberships' doesn't exist

这是一个错误,还是有办法强迫cakephp使用我的桌子?

1 个答案:

答案 0 :(得分:1)

through选项取代joinTable选项,查看代码,这是预期的行为。

<强> https://github.com/cakephp/.../src/ORM/Association/BelongsToMany.php#L173-L184

因此,如果您想在使用through时更改表名,只需在CourseMembershipsTable类中更改它,就像对任何其他表类一样进行更改

public function initialize(array $config)
{
    $this->table('prefix_course_memberships');
    // ...
}