繁体   English   中英

错误table1与table2不关联cakephp3

[英]error table1 is not associated with table2 cakephp3

email_orgs与组织有多对一的关系

Tabel email_orgs

id   |  name  | organizations_id

1    |  a     | 1

2    |  b     | 1

3    |  c     | 2

4    |  d     | 3

表组织

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与组织无关”

请帮助我

真傻。

我不知道,但是当重命名email_orgsemailorgs数据库和模型

这工作。

我不知道为什么??

模型和数据库约定

表类名称是复数形式和CamelCased。 People,BigPeople和ReallyBigPeople都是常规模型名称的示例。

与CakePHP模型相对应的表名是复数形式且带有下划线。 上述模型的基础表分别是人,big_people和true_big_people。

您可以使用实用程序库Cake \\ Utility \\ Inflector来检查单词的单数/复数。 有关更多信息,请参见变形器。

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

默认情况下,将hasMany,belongsTo或hasOne关系中的外键识别为相关表的(单数)名称,后跟_id。 因此,如果Bakers有很多Cakes,则cakes表将通过baker_id外键引用bakers表。 对于名称包含多个单词的表(如category_types),外键将为category_type_id。

在模型之间的BelongsToMany关系中使用的联接表应以将要联接的模型表命名,并按字母顺序排列(apples_zebras而不是zebras_apples)。

公约

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM