Я вижу, как обе записи в $ data обрабатываются в отладочных запросах, но по какой-то причине одна из них удаляется.Кто-нибудь знает почему?
Конечно, потому что это стандартное поведение Cake. Прочтите этот раздел о сохранении данных с помощью HABTM.
В этом разделе кратко рассказывается о создании отдельной модели для таблицы соединений, но я не думаю, что она достаточно справедлива, объясняя, что именнозначит или как ты это делаешь. Я не предполагаю, что это должен быть ваш подход, вам следует изучить информацию и принять решение на основе вашего приложения! Схема данных, безусловно, является одним из наиболее важных аспектов.
Я не знаком с Ruby on Rails, но по сути мы хотим продублировать RoR has_many :through
модель связи.Короче говоря, мы хотим иметь возможность работать с таблицей HABTM join
точно так же, как и с любой другой моделью.
Итак, мы бы настроили наши новые ассоциации моделей следующим образом:
Ваша Absence
модель ...
class Absence extends AppModel {
public $belongsTo = array('AbsentUser');
...
Ваша User
модель ...
class User extends AppModel {
public $belongsTo = array('AbsentUser');
...
Ваша новая AbsentUser
модель ...
class AbsentUser extends AppModel {
public $hasMany = array('Absence', 'User');
...
Теперь вы можете использовать AbsentUser
в качестве своей собственной модели, что позволяет вам обходить поведение HABTM по умолчанию в Cake.Кроме того, он позволяет вам легко расширять данные AbsentUser
, чтобы включить дополнительные поля, если вы того пожелаете.Например, вы можете хранить конкретную информацию об определенном отсутствии.
Я также настоятельно рекомендую убедиться, что у вас есть толстые модели и контроллеры скинни. .Ты будешь любить себя позже, если ты это сделаешь.