Ok so I figured out what the issue was. When posting changes the form was not going to "/network/add_network/< $nId>" it was only going to "/network/add_network/" so this is why it would lose the $nId parameter.
A couple of factors for this issue (main one below): 1) when I set the variable from controller to view it was losing the value. (I figured it out to be a Variable conflict, so I renamed $networkId to $netId) Edited Code that is working with View: [code] public function add_network($nId = 0) { if($nId){ $net_info = $this->Network->find('first', array('conditions' => array('id' => $nId))); //Should changed to $this->set(); self::set('netId', $nId); //This variable is used on view to set the form to post to correct "action with ID" self::set('network', $net_info); self::set('page_title', "View | Edit Network". $net_info['Network']['network_name']." ID: ".$nId); } else { self::set('netId', null); self::set('network', null); self::set('page_title', "Add Network"); } //Clear "Flash" $alert = null; if ($this->data['network']) { if ($this->data['network']['network_name']) { $data['network_name'] = addslashes($this- >data['network']['network_name']); $data['sub_id'] = addslashes($this->data['network'] ['sub_id']); $data['active'] = 1; //Save form data to Networks database. //If we are editing a network, then make sure to save data to record ID ($nId) $mySaveId = ($nId)?$nId:0; //Start Save to current record $this->Network->id = $mySaveId; $this->Network->save($data); //Get current Record (double check) $finalId = $this->Network->id; //Compare to determine correct message to send to user. if ($finalId == $mySaveId) { $alert = "Changes to network: ". $data['network_name']." were saved."; } else { $alert = "New network: ".$data['network_name']." was added."; } } } //Handles UI controls (navigation) switch($this->data['window']['flag']){ case "networks": self::redirect("/admin/manage_network"); break; } // switch //Sets View configurations for UI self::set('logo', $this->Session->read('logo')); self::set('wbtitle', $this->Session->read('wbtitle')); self::set('alert', $alert); //This is where the bug was, not sure if it needs to be removed. But to fix bug //renamed $networkId on view to $netId for now. self::set('networkId', isset($networkId)?$networkId:null); } [/code] On Feb 11, 11:01 am, chris varick <cvar...@gmail.com> wrote: > Stephen, > > STILL NOT WORKING... :( > > Thanks for the reply and suggestion. However the method you suggested > gives me different results. > This is what I ended up using: > [code] > > $mySaveId = $this->Network->id = $nId; > $networkId = $this->Network->save($this->data); > > [/code] > > Nothing is "saved" (editing record) or even "inserted" (if it is a new > record) I am really not sure what is happening. LIke I was saying it > feels like I am losing the Variable value $nId. $nId is being passed > by assessing the method "/networks/add_network/<nId>" > So I am really confused! :P Thank you for the corrected method though > of saving record via primary key with Model->id=$val I didn't realize > that was the documented way of doing things. > > On Feb 11, 2:46 am, Stephen Speakman <step...@ninjacodermonkey.co.uk> > wrote: > > > > > > > > > It's possible your $_SESSION['nId'] is actually overwriting the > > parameter being passed to the controller with 0? > > Assuming you're accessing the method like such: /networks/add_network/<nID> > > > If you want to avoid creating a new record try: > > > $this->Network->id = $nId; > > $this->Network->save($this->data); > > > Kind Regards > > Stephen > > > On 11/02/2012 08:44, chris varick wrote: > > > > I am hoping someone can help me out here. I am pulling my hair out. > > > For some reason when I go to save "edited" information, form a form, > > > it is creating an entire new record in the database instead of just > > > updating the current record at hand. > > > > I am using variable $nId to reference the record id on _save(); For > > > some reason it is setting the $nId to 0. I do not know what is > > > happening. Any suggestions? > > > > Take a look at the line that has: $mySaveId = ($nId)?$nId:0; you will > > > see where I attempt to save to the current record. > > > > [code] > > > > public function add_network($nId = 0) > > > { > > > > // Capture for Debuging > > > $_SESSION['nId'] = $nId; > > > > if($nId){ > > > $net_info = $this->Network->find('first', > > > array('conditions' => array('id' => $nId))); > > > self::set('network', $net_info); > > > self::set('page_title', "View | Edit Network". > > > $net_info['Network']['network_name']." ID: ".$_SESSION['nId']); > > > } else { > > > self::set('network', null); > > > self::set('page_title', "Add Network"); > > > } > > > > $alert = null; > > > > if ($this->data['network']) { > > > if ($this->data['network']['network_name']) { > > > $data['network_name'] = addslashes($this- > > >> data['network']['network_name']); > > > $data['sub_id'] = addslashes($this->data['network'] > > > ['sub_id']); > > > $data['active'] = 1; > > > > //Save form data to Networks database. > > > //If we are editing a network, then make sure to save > > > data to record ID ($nId) > > > $mySaveId = ($nId)?$nId:0; > > > $networkId = $this->Network->_save($mySaveId, $data); > > > > if ($networkId == $mySaveId) { > > > $alert = "Changes to network: ". > > > $data['network_name']." were saved."; > > > } else { > > > $alert = "New network: ".$data['network_name']." > > > was added.". " ".$networkId; > > > } > > > } > > > } > > > > switch($this->data['window']['flag']){ > > > case "networks": > > > self::redirect("/admin/manage_network"); > > > break; > > > > } // switch > > > > self::set('logo', $this->Session->read('logo')); > > > self::set('wbtitle', $this->Session->read('wbtitle')); > > > self::set('alert', $alert); > > > self::set('networkId', isset($networkId)?$networkId:null); > > > } > > > > [/code] -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php