Containing models
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.
Using 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.
Getting ready
For this recipe, we'll first define a new table and change our existing one using the following SQL statements:
CREATE TABLE categories...