错误 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).
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).