如何在 cakephp 3.x 中使用自定义字段名连接两个表?



>我有一个名为国家/地区的表,它有一个字段,即带有主键的ID,另一个表是客户,它有一个名为primary_country的字段。我想以 cakephp 的方式加入两个表,但它总是需要表中不存在的customers.country_id。我正在使用primary_country因为该表也有alternate_country字段。所以我不能使用country_id。请为我提供任何解决方案,以便我可以根据primary_country和alternate_country获取国家/地区名称。

您需要使用外键修改表对象,如下所述:

https://book.cakephp.org/3.0/en/orm/associations.html

在您的情况下,可能是这样的:

class CustomersTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Countries')
->setForeignKey('primary_country');
}
}

但我必须说,如果你的模型还在构思中,你可能想做第三个表customer_countries,并在"客户"和"国家"之间建立"hasMany"关系。将一个客户的记录限制为仅两个国家/地区,并在"主要"和"备用"之间对它们进行排序是业务逻辑的一部分。

最新更新