HABTM, в ORM Cake, на самом деле является абстракцией следующих двух структур ассоциации моделей (на вашем примере):
Recipe
-> hasMany IngredientsRecipe
-> belongsTo Ingredient
и
Ingredient
-> hasMany IngredientsRecipe
-> belongsTo Recipe
Модель IngredientsRecipe
выведена и используется только для связи двух первоклассных моделей, Ingredient
и Recipe
.
Однако в вашем случае вы на самом деле хотите, чтобы IngredientsRecipe
была первоклассной моделью, которая нарушает абстракцию HABTM. Фактически, вам нужно явно определить две вышеупомянутые структуры ассоциаций, чтобы Cake рассматривал модель IngredientsRecipe
как первоклассного гражданина, позволяя вам делать запросы к ней, сохранять записи и т. Д.
Кроме того, нет, я не думаю, что это слишком много для создания дополнительной MeasurementUnit
модели. Это обеспечит вам гораздо большую гибкость.