Как объединить две таблицы в cakephp 3.x с произвольным именем поля? - PullRequest
0 голосов
/ 29 августа 2018

У меня есть одна таблица с названием страны, в которой есть поле, т.е. идентификатор с первичным ключом, а другая таблица - клиенты, у которой есть поле с именем primary_country. Я хочу объединить обе таблицы в режиме CakePHP, но всегда он принимает customer.country_id, которого нет в таблице. Я использую primary_country, потому что таблица также имеет поле alternate_country. поэтому я не могу использовать country_id. Пожалуйста, предоставьте мне любое решение, чтобы я мог получить названия стран на основе primary_country и alternate_country.

1 Ответ

0 голосов
/ 29 августа 2018

Вам потребуется изменить объект таблицы с помощью внешнего ключа, как указано здесь:

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 между клиентами и странами. Ограничение записей для одного клиента только двумя странами, и размещение их между «основным» и «альтернативным» является частью вашей бизнес-логики.

...