Book Image

CakePHP 2 Application Cookbook

Book Image

CakePHP 2 Application Cookbook

Overview of this book

Table of Contents (20 chapters)
CakePHP 2 Application Cookbook
Credits
Foreword
About the Authors
About the Reviewer
www.PacktPub.com
Preface
Index

Has and belongs to many (HABTM)


Has and belongs to many (HABTM) is the most complex model association available in CakePHP. This association type allows you to define many-to-many relationships in your data model, for example, in an inventory management application, where packages might be stored in different warehouses, and each warehouse might have several packages. This is a typical many-to-many relationship between packages and warehouses.

To model this association, you'll need to use three tables in your database: the packages table to store the data related to your packages, the warehouses table, and the packages_warehouses table, where the association itself is defined. The packages_warehouses table will have three columns by convention: id, package_id, and warehouse_id. We'll use this table to store the IDs of the associated models.

Of course, you could manage this table manually, keeping track of the association data and performing the changes that are required. However, CakePHP...