Implementing edit records in multiple associated tables in Cakephp 3

In this blog we are going to discuss how to edit data of associated tables .The most common type error found in this that instead of updating existing records of associated data new records are created .
For example there are 2 tables
Customers  and Customer Orders.

 

 

 

 

Main causes the update fails
1 .   Not defining relationship properly between tables .As in above example the relationships is 1 to many.

So in customersTable.php
Define relationship

 

 

Similary add belongs relationship in OrdersTable.php

 

 

 

The naming of associated table variable in edit.ctp file is important
Taking the eg of above tables .For customer edit.ctp form in templates
We will pass additional value of id of the associated form in this case of customer_orders
Suppose $customerId contains value of id of associated tables than

In the ctp file you will have to create a hidden variable

 

 

Note the naming .If the associated table’s name is CustomerOrders it will be customer_orders.

3.The final step is to patch the entity for associated table

 

 

You can verify by var_dump the customer variable if it has field customer_order and [new] flag is set to false.

That should update the records in associated tables.

 

 

Nikhil Kamath
SJ Innovation LLC
Where employee happiness generates client success.
Follow us on Facebook or Twitter