CakePhp 3不唯一的表/别名:TableName

时间:2015-11-14 14:34:18

标签: php cakephp cakephp-3.0

我现在正在搜索几天而不解决这个问题:

我收到此错误消息:
Error: SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'Posts'

这是我在PostTable类中的初始化方法:

public function initialize(array $config)
{
    parent::initialize($config);

    $this->table('posts');
    $this->displayField('post_id');
    $this->primaryKey('post_id');
    $this->addBehavior('timestamp');

    $this->belongsTo('Posts', [
        'foreignKey' => 'post_id',
        'joinType' => 'INNER'
    ]);

    $this->belongsTo('Users', [
        'className' => 'Users',
        'foreignKey' => 'fk_post_user_id', //<- foreignkey name are correct
        'joinType' => 'INNER'
    ]);

    $this->belongsTo('Pictures',[
        'foreignKey' => 'fk_post_picture_id',
        'joinType' => 'INNER'
    ]);
}

这是我的数据库:

Database ERD

我知道错误必须对posts表的外键做一些事情,但我不知道初始化方法中belongTo的错误。

1 个答案:

答案 0 :(得分:0)

由于您具有自我关联,因此您需要为该关联使用不同的别名。而不是

$("#result").html(data);

使用

$this->belongsTo('Posts', [
    'foreignKey' => 'post_id',
    'joinType' => 'INNER'
]);