So when you go to the first edit screen the id is being passed in the URL 
from the link:

<?php echo $this->Html->link(__('Edit'), array('action' => 'edit', 
$user['User']['id'])); ?> :

but no id is specified when you click the submit link on the edit page.  If 
i then add a hidden field to the edit page as discussed above it should 
pass the id?

I have also amended my controller as follows:


public function edit($id = null) {
        *$this->set('id',$id);*
        $this->User->id = $id;
        if (!$this->User->exists()) {
            throw new NotFoundException(__('Invalid user'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            if ($this->User->save($this->request->data)) {
                $this->Session->setFlash(__('The user has been saved'));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('The user could not be saved. 
Please, try again.'));
            }
        } else {
            $this->request->data = $this->User->read(null, $id);
            unset($this->request->data['User']['password']);
        }
                $this->set('title_for_layout', 'Edit Account');
    }


When i try this i just get an error message on the second submit attempt saying:


*Error: *The requested address *'/users/edit'* was not found on this server.


So it seems i am passing the id incorrectly on the second edit.  Have i placed 
the code incorrectly in the controller?


Also, how come none of this is mentioned in the Tutorial document?  It seems 
strange that they would be listing broken code on one of the main tutorials on 
the cake site?


Thanks,

Ronan


On Tuesday, July 17, 2012 9:06:05 AM UTC+2, Bharat Maheshwari wrote:
>
>
> you have to post a id set from the action 
>
> in your controller :- 
>
> $this->set('id',$id);
>
> in your view 
>
> $this->Form->hidden('id',array('value'=>$id));
> On Saturday, July 14, 2012 12:21:11 PM UTC+5:30, chuminh wrote:
>>
>> I am having the same problem with edit. I got exactly the same code as 
>> above. but when I try to edit and save the data, it does not save, it gives 
>> me flash message. I wonder what is wrong with the code because i follow 
>> this edit function from blog tutorial.
>>
>> Thanks
>>
>> On Wednesday, July 11, 2012 11:47:44 PM UTC+10, Max Dörfler wrote:
>>>
>>>  I guess in your view you have to pass in the id (echo 
>>> $this->Form->input('id');). This should include a hidden id field.
>>> I wonder why it works the first time (without leaving a field blank). 
>>> Are you sure the user gets edited and not a new user created? Because when 
>>> you save $this->request->data, the data shouldn't contain the id if you 
>>> didn't pass it from the view!
>>>
>>> On 07/11/2012 03:20 PM, Banana Man wrote:
>>>  
>>> Hi, 
>>>
>>>  I am trying to setup an Edit User authentication action.  I have 
>>> authentication working fine for adding a user but when i try to edit a user 
>>> i am running into a problem.  
>>>
>>>  If i try to edit a user when all information supplied passes 
>>> validation it works fine (URL: http://localhost/users/edit/3).  If 
>>> however i leave a textfield blank when i am validating it against 
>>> 'notEmpty' the first time i hit the form submit button it works as expected 
>>> and reloads the edit user page with the validation error displayed (URL: 
>>> http://localhost/users/edit/3).  If i do nothing and try to submit the 
>>> form again with the blank textfield i now get redirected to 
>>> http://localhost/users/edit with an Invalid User message "*Error: * The 
>>> requested address *'/users/edit'* was not found on this server."
>>>
>>>  <!-- app/Controller/UsersController.php -->
>>>   public function edit($id = null) {
>>>         $this->User->id = $id;
>>>         if (!$this->User->exists()) {
>>>             throw new NotFoundException(__('Invalid user'));
>>>         }
>>>         if ($this->request->is('post') || $this->request->is('put')) {
>>>             if ($this->User->save($this->request->data)) {
>>>                 $this->Session->setFlash(__('The user has been saved'));
>>>                 $this->redirect(array('action' => 'index'));
>>>             } else {
>>>                 $this->Session->setFlash(__('The user could not be 
>>> saved. Please, try again.'));
>>>             }
>>>         } else {
>>>             $this->request->data = $this->User->read(null, $id);
>>>         }
>>>     }
>>>  
>>>  
>>>  
>>>  <!-- view/users/edit.ctp -->
>>>  <div class="users form">
>>> <?php echo $this->Form->create('User', array('action' => 'edit'));?>
>>>  <fieldset>
>>>  <legend><?php echo __('Edit User'); ?></legend>
>>>  <?php
>>>  echo $this->Session->flash();
>>>  echo $this->Form->input('firstname', array('label' => 'First Name'));
>>>  echo $this->Form->input('secondname', array('label' => 'Second Name'));
>>>  echo $this->Form->input('address_01', array('label' => 'Address Line 
>>> 1'));
>>>  echo $this->Form->input('address_02', array('label' => 'Address Line 
>>> 2'));
>>>  echo $this->Form->input('address_03', array('label' => 'Address Line 
>>> 3'));
>>>  echo $this->Form->input('address_04', array('label' => 'Address Line 
>>> 4'));
>>>  echo $this->Form->input('tel_01', array('label' => 'Telephone'));
>>>  echo $this->Form->input('email');
>>>  echo $this->Form->hidden('role', array('value' => 'customer'));
>>>  ?>
>>>  </fieldset>
>>> <?php echo $this->Form->end(__('Submit'));?>
>>> </div>
>>> <div class="actions">
>>>  <h5><?php echo __('Actions'); ?></h5>
>>>  <ul>
>>>
>>>  <li><?php echo $this->Html->link(__('List Users'), array('action' => 
>>> 'index'));?></li>
>>>  </ul>
>>> </div>
>>>  
>>>  
>>>  
>>>  Does anyone know why i am getting redirected on the second submit?
>>>
>>>  Thanks!
>>> -- 
>>> 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
>>>
>>>
>>>
>>> 

-- 
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

Reply via email to