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) ;
说erro“email_orgs与组织无关”
请帮助我答案 0 :(得分:2)
真傻。
我不知道,但在数据库和模型中将email_orgs
重命名为emailorgs
时
这很有效。
我不知道为什么?
答案 1 :(得分:2)
模型和数据库约定
表类名称是复数和CamelCased。 People,BigPeople和ReallyBigPeople都是传统模型名称的例子。
与CakePHP模型对应的表名称是复数并加以强调。上述模型的基础表分别是people,big_people和really_big_people。
您可以使用实用程序库Cake \ Utility \ Inflector来检查单数/复数单词。有关更多信息,请参阅Inflector。
带有两个或更多单词的字段名称被强调:first_name。
默认情况下,hasMany,belongsTo或hasOne关系中的外键被识别为相关表的(单数)名称,后跟_id。因此,如果Bakers有很多蛋糕,蛋糕表将通过baker_id外键引用面包师表。对于类名为category_types的表,其名称包含多个单词,外键将为category_type_id。
在模型之间的BelongsToMany关系中使用的连接表应该以它们将要连接的模型表命名,按字母顺序排列(apples_zebras而不是zebras_apples)。