I've 2 models: Templates and Modules. Both models have association belongsToMany to the other. Now I want to save few modules associated with Template (modules can be use multiple times for one template). I alsa have additional field (position) in join table.
When I prepare my entity to save everything is ok. I got duplikcated records in "modules",but after save there are only unique records in join table.
Prepared entity to save:
AdminTheme\Model\Entity\Template Object
(
[name] => t3
[description] => text3
[modules] => Array
(
[0] => AdminTheme\Model\Entity\Module Object
(
[id] => 2
[name] => TextBox
[default_conf] => Array
(
)
[is_active] => 1
[global_alias] =>
[description] => txt2
[created] => Cake\I18n\FrozenTime Object
(
[time] => 2019-09-05T10:48:04+02:00
[timezone] => Europe/Warsaw
[fixedNowTime] =>
)
[modified] => Cake\I18n\FrozenTime Object
(
[time] => 2019-09-05T14:31:23+02:00
[timezone] => Europe/Warsaw
[fixedNowTime] =>
)
[ico] => format_align_justify
[_joinData] => Cake\ORM\Entity Object
(
[position] => 4
[[new]] => 1
[[accessible]] => Array
(
[*] => 1
)
[[dirty]] => Array
(
[position] => 1
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => ModulesTemplates
)
[[new]] =>
[[accessible]] => Array
(
[name] => 1
[default_conf] => 1
[is_active] => 1
[global_alias] => 1
[description] => 1
[ico] => 1
[created] => 1
[modified] => 1
[templates] => 1
)
[[dirty]] => Array
(
[_joinData] => 1
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => AdminTheme.Modules
)
[1] => AdminTheme\Model\Entity\Module Object
(
[id] => 1
[name] => NarrowHeader
[default_conf] => Array
(
[title] => text
)
[is_active] => 1
[global_alias] =>
[description] => txt1
[created] => Cake\I18n\FrozenTime Object
(
[time] => 2019-08-30T08:27:12+02:00
[timezone] => Europe/Warsaw
[fixedNowTime] =>
)
[modified] => Cake\I18n\FrozenTime Object
(
[time] => 2019-09-05T14:31:23+02:00
[timezone] => Europe/Warsaw
[fixedNowTime] =>
)
[ico] => format_align_justify
[_joinData] => Cake\ORM\Entity Object
(
[position] => 6
[[new]] => 1
[[accessible]] => Array
(
[*] => 1
)
[[dirty]] => Array
(
[position] => 1
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => ModulesTemplates
)
[[new]] =>
[[accessible]] => Array
(
[name] => 1
[default_conf] => 1
[is_active] => 1
[global_alias] => 1
[description] => 1
[ico] => 1
[created] => 1
[modified] => 1
[templates] => 1
)
[[dirty]] => Array
(
[_joinData] => 1
)
[[original]] => Array
(
[_joinData] => Cake\ORM\Entity Object
(
[position] => 5
[[new]] => 1
[[accessible]] => Array
(
[*] => 1
)
[[dirty]] => Array
(
[position] => 1
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => ModulesTemplates
)
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => AdminTheme.Modules
)
[2] => AdminTheme\Model\Entity\Module Object
(
[id] => 1
[name] => NarrowHeader
[default_conf] => Array
(
[title] => text
)
[is_active] => 1
[global_alias] =>
[description] => txt1
[created] => Cake\I18n\FrozenTime Object
(
[time] => 2019-08-30T08:27:12+02:00
[timezone] => Europe/Warsaw
[fixedNowTime] =>
)
[modified] => Cake\I18n\FrozenTime Object
(
[time] => 2019-09-05T14:31:23+02:00
[timezone] => Europe/Warsaw
[fixedNowTime] =>
)
[ico] => format_align_justify
[_joinData] => Cake\ORM\Entity Object
(
[position] => 6
[[new]] => 1
[[accessible]] => Array
(
[*] => 1
)
[[dirty]] => Array
(
[position] => 1
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => ModulesTemplates
)
[[new]] =>
[[accessible]] => Array
(
[name] => 1
[default_conf] => 1
[is_active] => 1
[global_alias] => 1
[description] => 1
[ico] => 1
[created] => 1
[modified] => 1
[templates] => 1
)
[[dirty]] => Array
(
[_joinData] => 1
)
[[original]] => Array
(
[_joinData] => Cake\ORM\Entity Object
(
[position] => 5
[[new]] => 1
[[accessible]] => Array
(
[*] => 1
)
[[dirty]] => Array
(
[position] => 1
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => ModulesTemplates
)
)
[[virtual]] => Array
(
)
[[hasErrors]] =>
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => AdminTheme.Modules
)
)
[user_id] => 3
[amount_modules] => 3
[[new]] => 1
[[accessible]] => Array
(
[name] => 1
[user_id] => 1
[description] => 1
[use_amount] => 1
[created] => 1
[modified] => 1
[user] => 1
[amount_modules] => 1
[modules] => 1
)
[[dirty]] => Array
(
[name] => 1
[description] => 1
[modules] => 1
[user_id] => 1
[amount_modules] => 1
)
)
After save I got only 2 records in join table despite above Entity had 3 items.