If you want to pull the value from the session, I would do that in the controller, and set the value there.
You don't need any code to read the session in the view. In your controller, just set the field 'user_id' to the value you got from the session (if I'm understanding the point of the code you pasted here). On Jan 7, 11:29 am, Steppio <[email protected]> wrote: > Hello again everybody > This systems been working fine but for one problem, i keep getting > this error message when passing the ID across controller/views: > > SQL Error: 1366: Incorrect integer value: '' for column 'user_id' at > row > > The site takes the users username and password, then goes onto a > different set of controller/views for Details, then onto Duties, and > finally Terms and Conditions. I find the problem happens most when i > reload one of the pages, for instance when im adding Details and it > times-out or i just reload the page. It's sometimes as if it's not > writing correctly to the Session, but then again it works other times. > > Here's an example of how i read the session in a view: > <?php $user_id = $session->read('User.id');?> > <?php echo $form->input('user_id', array('type' => 'hidden', > 'value' > => $user_id));?> > > And in a controller: > $this->Session->read('User.id') > > Any suggestions? Any help would be greatly appreciated! > Thank you > Steppio > > On Jan 3, 4:32 am, Webweave <[email protected]> wrote: > > > It shouldn't as you are writing to the session, which is not shared > > across sessions ... > > > On Dec 30 2008, 6:40 am, Steppio <[email protected]> wrote: > > > > Ahh thank you very much, i understand now. I've used the following in > > > the controller to set the id in the session: > > > > $user_id = $this->User->getLastInsertId(); > > > $this->Session->write('User.id', > > > $user_id); > > > > And then i used the session helper in the view to retrieve it: > > > > $user_id = $session->read('User.id'); > > > > echo $form->input('user_id',array('type' => 'hidden', > > > 'value' => > > > $user_id )); > > > > It still returned a select box with all the ID's in, but its default > > > is the last ID, so i set it to hidden. > > > > Say. however, two people signed up to the site simultaneously, would > > > this confuse the controller / view if configured this way, i.e. might > > > one person end up with the others ID? > > > > Again thank you very much for your help! > > > > On Dec 30, 2:09 pm, majna <[email protected]> wrote: > > > > >http://api.cakephp.org/class_model.html#2525df39f43db3a76bff482265695d54 > > > > > getLastInsertID is wrapper for getInsertID, > > > > so getInsertID is a it faster. > > > > in controller: > > > > $this->set('user_id', $this->User->getInsertID()); > > > > > On Dec 30, 2:50 pm, Steppio <[email protected]> wrote: > > > > > > Thanks to everyone for the responses its been a big help, i am still > > > > > stumped however, are getInsertID and getLastInsertID model functions? > > > > > If so how would i pass these to the views? > > > > > > On Dec 29, 4:22 pm, Webweave <[email protected]> wrote: > > > > > > > I think you meant $this->User->getLastInsertId(); > > > > > > > On Dec 28, 9:59 am, Troy Schmidt <[email protected]> wrote: > > > > > > > > $this->User->getInsertID(); > > > > > > > > I don't know about the Auth component as i haven't used it alot. > > > > > > > But > > > > > > > that would get the last inserted ID. I would just set that > > > > > > > variable > > > > > > > and include it in the view for the future steps. > > > > > > > > Otherwise it looks like 'user_id' isn't set yet for user > > > > > > > > On Dec 28, 11:11 am, Steppio <[email protected]> wrote: > > > > > > > > > Hello everybody, i am totally new to Cake and am finding it > > > > > > > > quite > > > > > > > > difficult to understand all the different parts of it. At the > > > > > > > > moment > > > > > > > > i'm trying to make a three part user registration process, > > > > > > > > firstly > > > > > > > > with the username and password fields, then onto details about > > > > > > > > the > > > > > > > > user, then on to duties they wish to undertake on the site. The > > > > > > > > only > > > > > > > > problem i am having is once the username and password are > > > > > > > > created it > > > > > > > > creates an ID in the users tables, referenced to my other > > > > > > > > tables as > > > > > > > > 'user_id'. What i cannot quite figure out is how, once a user is > > > > > > > > created, would i get that user_id into the duties view? What i > > > > > > > > am > > > > > > > > doing at the moment is shown below: > > > > > > > > > function add() { > > > > > > > > if (!empty($this->data)) { > > > > > > > > $this->User->create(); > > > > > > > > if ($this->User->saveAll($this->data)) { > > > > > > > > > > > > > > > > $this->Session->setFlash(__('Your Username and Password have > > > > > > > > been > > > > > > > > saved', true)); > > > > > > > > $cookie = array(); > > > > > > > > $cookie['user_id'] = > > > > > > > > $this->Auth->user('user_id'); > > > > > > > > > > > > > > > > $this->Session->write('Auth.User', $cookie); > > > > > > > > > > > > > > > > $this->redirect(array('controller'=>'details','action'=>'add')); > > > > > > > > } else { > > > > > > > > > > > > > > > > $this->Session->setFlash(__('Your Username and Password could > > > > > > > > not > > > > > > > > be saved. Please, try again.', true)); > > > > > > > > } > > > > > > > > } > > > > > > > > } > > > > > > > > > ^users_ controller^ > > > > > > > > > I then call this in the 'duties/add' view with: > > > > > > > > > $user_id = $session->read('User_id'); > > > > > > > > > echo $form->input('user_id',array('value' => > > > > > > > > $user_id )); > > > > > > > > > The only problem with this is Cake returns a select box > > > > > > > > populated with > > > > > > > > all of the id's in the user tables. All i want is the ID that > > > > > > > > has just > > > > > > > > been created. > > > > > > > > > This is probably a very simple problem but i've been reading > > > > > > > > alot on > > > > > > > > the internet and just cannot understand how to do it. Any help > > > > > > > > and > > > > > > > > advice would be greatly appreciated!! > > > > > > > > > Yours hopefully, > > > > > > > > Steppio > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
