Сгенерированный оператор SQL неверен.Это ошибка в генераторе.Вам нужно только одно поле типа «int», оканчивающееся на _id.
Причина, по которой это происходит, заключается в том, что refModel () фактически создает два поля в модели, одно из которых используется для редактирования (_id), а другое - для вывода данных (в качестве подзапроса).
Когда вы используете refModel, вы должны использовать "Model_Person".Согласованность между refModel, setModel и другими полями будет улучшена в 4.2, это не сделано из соображений совместимости.
Генератор SQL по своей природе неполон и не может быть полным, поэтому лучше эту схемурассматривается в любом случае.Например, у вас могут быть некоторые поля, которые не определены в «Модель».Также я предпочитаю, чтобы разработчики обращали внимание на SQL, так как он может не точно отражать модели, одна модель может использовать несколько таблиц через объединение, или модели могут наследовать каждую, а затем добавлять туда дополнительные определения полей.
required () - это модель-требование уровня, которое работает аналогично другим проверкам.Хотя MySQL может справиться с «обязательным» условием, он не сможет справиться с другими.Кроме того, вы можете удалить «обязательный» при наследовании моделей.
Я постараюсь добавить руководство по эффективному использованию моделей в Agile Toolkit.