i can't understand. could you please give me an example if you have? Note: *I want to create a new record at Costs & FixedCosts against Units ID but don't want to add a new record at UnitsTable*
Thanks in advance Bayezid On Sun, Dec 14, 2014 at 3:36 AM, José Lorenzo <[email protected]> wrote: > > 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: >> >> Thanks a lot, >> >> but it not saving to Costs & FixedCosts Table somehow, i tried, even if >> its not executing after $this->request->is >> >> >> 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->patchEntity($unitId, >> $this->request->data(),['associated' => ['Costs', 'FixedCosts']]);* >> >> * debug($unit); // This debug result is below* >> >> if ($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 executing* >> >> 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')); >> } >> >> >> *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' >> >> } >> >> >> Thanks >> Bayezid >> >> >> On Sat, Dec 13, 2014 at 3:45 PM, José Lorenzo <[email protected]> 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_costs >>>> >>>> i 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 primaryKey >>>> >>>> Form at unitsController: >>>> >>>> <?php >>>> >>>> echo $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. >>>> >>>> Thanks >>>> Bayezid >>>> >>>> -- >>> 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 [email protected]. >>> To post to this group, send email to [email protected]. >>> 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 [email protected]. > To post to this group, send email to [email protected]. > 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.
