错误 table1 is not associated with table2 cakephp3

error table1 is not associated with table2 cakephp3

email_orgs 与组织有多对一关系

标签email_orgs

id   |  name  | organizations_id

1    |  a     | 1

2    |  b     | 1

3    |  c     | 2

4    |  d     | 3

Table 个组织

id   |  name  

1    |  aa     

2    |  bb    

3    |  cc 

型号email_orgs

class email_orgsTable extends table
{    
    public function initialize(array $config)
    {       
        $this->table('email_orgs');
        $this->primaryKey('id');

        $this->belongsTo('organizations', [
            'foreignKey' => 'organizations_id', 
            'joinType' => 'INNER',          
            'className' => 'organizations',         
        ]);
    }

}

模范组织

class organizationsTable extends table
{       
    public function initialize(array $config)
    {       
        $this->table('organizations');
        $this->primaryKey('id');

        $this->belongsTo('tabaghe_organizations_peoples', [
            'foreignKey' => 'tabagheOrganizationsPeople_id', 
            'joinType' => 'INNER',          
        ]);
        $this->belongsTo('onvane_organizations', [
            'foreignKey' => 'onvaneOrganizations_id', 
            'joinType' => 'INNER',          
        ]);         
    }
}

控制器

    $email_org=TableRegistry::get('email_orgs');
    $email_org=$email_org->find('all')->contain(['organizations'])->offset($from)->limit($to) ;   

说错了"email_orgs is not associated with organizations"

请帮帮我

真傻

我不知道,但是当在数据库和模型中将 email_orgs 重命名为 emailorgs

这有效。

不知道为什么??

Model and Database Conventions

Table class 名字是复数和 CamelCased。 People、BigPeople 和 ReallyBigPeople 都是常规模型名称的示例。

Table CakePHP 模型对应的名字是复数加下划线。上述模型的基础 table 分别是人 big_people 和 really_big_people。

您可以使用实用程序库 Cake\Utility\Inflector 来检查 singular/plural 单词。有关详细信息,请参阅变形器。

带有两个或更多单词的字段名称带有下划线:first_name。

hasMany、belongsTo 或 hasOne 关系中的外键默认识别为相关 table 的(单数)名称后跟 _id。因此,如果 Bakers hasMany Cakes,蛋糕 table 将通过 baker_id 外键引用面包师 table。对于名称包含多个单词的 table,例如 category_types,外键将是 category_type_id.

Join tables,用在模型之间的BelongsToMany关系中,应该以他们将加入的模型tables命名,按字母顺序排列(apples_zebras而不是zebras_apples).

conventions