You either need to load the Costs and FixedCosts associations in the get() call or mark the entity with isNew(false) if you want them updated instead of created.
On Saturday, December 13, 2014 3:39:34 PM UTC+1, Bayezid Alam wrote:
-- On Saturday, December 13, 2014 3:39:34 PM UTC+1, Bayezid Alam wrote:
Thanks a lot,but it not saving to Costs & FixedCosts Table somehow, i tried, even if its not executing after $this->request->ispublic function add_cost($uId){if (!$uId){throw new NotFoundException(__('Unit id Not found, try with a valid ID'));}$unitId = $this->Units->get($uId);$unit = $this->Units->patchEntity($unitId, $this->request->data(),[' associated' => ['Costs', 'FixedCosts']]); debug($unit); // This debug result is belowif ($this->request->is('post')){ // tried adding patch & put too, found same result$unit->cost->unit_id = $unit->fixed_cost->unit_id = $unitId->id;//debug($unit); // This debug is not executingif ($this->Units->save($unit)){$this->Flash->success(__('The unit cost has been added'));return $this->redirect(['controller' => 'houses', 'action' => 'view', $unit->house_id]);}}$this->set(compact('unit'));}debug($unit):/src/Controller/UnitsController.php (line 53)object(Cake\ORM\Entity) { 'new' => false, 'accessible' => [ '*' => true ], 'properties' => [ 'id' => (int) 1, 'name' => '1st Floor - Front', 'house_id' => (int) 2, 'billing_date' => object(Cake\I18n\Time) { 'time' => '2014-12-05T00:00:00+0000', 'timezone' => 'UTC', 'fixedNowTime' => false }, 'created' => object(Cake\I18n\Time) { 'time' => '2014-12-10T14:59:25+0000', 'timezone' => 'UTC', 'fixedNowTime' => false }, 'modified' => object(Cake\I18n\Time) { 'time' => '2014-12-10T14:59:25+0000', 'timezone' => 'UTC', 'fixedNowTime' => false }, 'cost' => object(Cake\ORM\Entity) { 'new' => true, 'accessible' => [ '*' => true ], 'properties' => [ 'rental_cost' => (float) 2000 ], 'dirty' => [ 'rental_cost' => true ], 'original' => [], 'virtual' => [], 'errors' => [], 'repository' => 'Costs' }, 'fixed_cost' => object(Cake\ORM\Entity) { 'new' => true, 'accessible' => [ '*' => true ], 'properties' => [ 'gas_bill' => (int) 500, 'water_bill' => (int) 300, 'service_bill' => (int) 300 ], 'dirty' => [ 'gas_bill' => true, 'water_bill' => true, 'service_bill' => true ], 'original' => [], 'virtual' => [], 'errors' => [], 'repository' => 'FixedCosts' } ], 'dirty' => [ 'cost' => true, 'fixed_cost' => true ], 'original' => [], 'virtual' => [], 'errors' => [], 'repository' => 'Units' }ThanksBayezidOn Sat, Dec 13, 2014 at 3:45 PM, José Lorenzo <jose.zap@gmail.com> wrote:Ah ok. I understand the question now. Instead of using newEntity() you should use patchEntity()$unitId = $this->Units->get($uId);$unit = $this->Units->patchEntity($unitId, $this->request->data(),[' associated' => ['Costs', 'FixedCosts']]);
On Thursday, December 11, 2014 5:08:27 PM UTC+1, Bayezid Alam wrote:Hi,i have Tables :Units hasOne costs & hasOne fixed_costsi want to add data to costs and fixed_costs table using units's primary key from units Controller.i did below things but its creating a new record at unit Table instead of using primaryKeyForm at unitsController:<?phpecho $this->Form->create($unit);echo $this->Form->input('cost.rental_cost'); echo $this->Form->input('fixed_cost.gas_bill'); echo $this->Form->input('fixed_cost.water_bill'); echo $this->Form->input('fixed_cost.service_bill'); echo $this->Form->button('Save Costs');echo $this->Form->end();?>Function at UnitsController:public function add_cost($uId){if (!$uId){throw new NotFoundException(__('Unit id Not found, try with a valid ID'));}$unitId = $this->Units->get($uId);$unit = $this->Units->newEntity($this->request->data(),['associated' => ['Costs', 'FixedCosts']]); if ($this->request->is('post')){$unit->cost->unit_id = $unit->fixed_cost->unit_id = $unitId->id;if ($this->Units->save($unit)){$this->Flash->success(__('The unit cost has been added'));return $this->redirect(['controller' => 'houses', 'action' => 'view', $unit->house_id]);}}$this->set(compact('unit'));}Please suggest me on this regard.ThanksBayezid--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com .
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php .
For more options, visit https://groups.google.com/d/optout .
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment