[英]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_orgs
到emailorgs
数据库和模型
这工作。
我不知道为什么??
模型和数据库约定
表类名称是复数形式和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.