Containable is one of the must-have core behaviors in CakePHP. A behavior is added to a model to reuse logic, allowing you to configure your models by adding or removing specific behaviors to dynamically include or modify features or capabilities.
Containable allows you to determine which associations are retrieved for a specific
find operation. So, instead of retrieving all the associated models on each
find operation, you have the ability to select which specific associations you need for your next query. This is especially useful to optimize model queries when a large number of associations are defined. You also have the power to filter based on specific conditions and define which fields should be retrieved. When you combine the
Containable behavior with associations, you'll resolve most of your data-retrieval needs.