CakePHP имеет много отношений, требующих множественного имени класса

Я работаю над приложением CakePHP для доставки грузов, и я нашел обходной путь к моей проблеме, но я все еще не понимаю, в чем проблема.

Это модель моей страны

class Country extends AppModel {
public $recursive = 1;
public $hasMany = array(
'Port' => array(
'className' => 'Ports'
)
);
}

Этот код работает. Но следующее не делает.

//Broken example #1
class Country extends AppModel {
public $recursive = 1;
public $hasMany = 'Port';
}

И это тоже.

//Broken example #2
class Country extends AppModel {
public $recursive = 1;
public $hasMany = 'Ports';
}

моя таблица базы данных ports, Моя модель Port и мой контроллер PortsController,

Документация о торте заставила бы меня поверить, что я должен использовать единственное имя для hasMany отношения. И использование единственного имени работает для belongsTo отношения в другом месте в моей программе.

Трудно получить отладочную информацию, потому что все запросы являются ajax, но насколько я вижу, запросы ничем не отличаются.

Используя рабочий код, мои запросы:

SELECT `Country`.`id`, `Country`.`name` FROM `db`.`countries` AS `Country` WHERE 1 = 1

SELECT `Port`.`id`, `Port`.`country_id`, `Port`.`name` FROM `db`.`ports` AS `Port` WHERE `Port`.`country_id` IN (1, 3, 2)

Используя неработающий пример № 1, я получаю следующие запросы:

SELECT `Country`.`id`, `Country`.`name` FROM `db`.`countries` AS `Country` WHERE 1 = 1

SELECT `Port`.`id`, `Port`.`country_id`, `Port`.`name` FROM `db`.`ports` AS `Port` WHERE `Port`.`country_id` IN (1, 3, 2)

Так почему же эта модель ведет себя так странно?

Изменить: Добавление модели порта

class Port extends AppModel {
public $belongsTo = array('Country', 'Customer');
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]