*#### What I did*

*1.- This is my model:*
*
--------------------------------------------------------------------------------------
*

<pre>  
 class Account extends AppModel {
 public $name = 'Account'; 
 public $belongsTo = array(
 'Client' => array(
            'className' => 'Client',
            'foreignKey' => 'client_id'
        ),
'Accounttype' => array(
            'className' => 'Accounttype',
            'foreignKey' => 'accounttype_id'
        )
    );
 
 public $hasMany = array(
 'Event' => array(
            'className' => 'Event',
            'foreignKey' => 'account_id',
'dependent'=> true
        ), 
'Plot' => array(
            'className' => 'Plot',
            'foreignKey' => 'account_id',
'dependent'=> true
        ),
 'Widget' => array(
            'className' => 'Widget',
            'foreignKey' => 'account_id',
'dependent'=> true
        )  
 ); 
 
 
}
</pre>

*
--------------------------------------------------------------------------------------
*
*
*
*2.- **This is my controller:***
*
--------------------------------------------------------------------------------------
*

<pre>

class AccountsController extends AppController {
    public $helpers = array ('Html','Form');

 
    function index($client_id) {
        $this->set('accounts', $this->Account->find('all', 
array('recursive' =>1, 'conditions' => 'Account.client_id ='. $client_id)));
$this->set('client_id', $client_id);
    }

public function view($id = null) {
        $this->Account->id = $id;
        $this->set('account', $this->Account->read());
    }
public function add($client_id) { 
        if ($this->request->is('post')) {
            if ($this->Account->save($this->request->data)) {
                $this->Session->setFlash('Your account has been added.'); 
if($this->request->data['Account']['accounttype_id'] == 2){
$this->redirect(array('controller' => 'twitteraccounts', 'action' => 
'connect'));
}
            }
        }
  $accounts = $this->Account->find('list'); 
  $accounttype  =  $this->Account->Accounttype->find('list', array('fields' 
 => array('Accounttype.id', 'Accounttype.description')));
  $this->set('client_id', $client_id);
      $this->set('accounts', $accounts);
  $this->set('accounttype', $accounttype);
    }

function edit($id = null, $client_id) {
    $this->Account->id = $id;
$this->set('id', $id);
    if ($this->request->is('get')) {
        $this->request->data = $this->Account->read();
    } else {
        if ($this->Account->save($this->request->data)) {
            $this->Session->setFlash('Your account has been updated.');
            $this->redirect(array('action' => 'index', $client_id));
        }
    }
  $accounts = $this->Account->find('list'); 
  $accounttype  =  $this->Account->Accounttype->find('list', array('fields' 
 => array('Accounttype.id', 'Accounttype.description')));
      $this->set('accounts', $accounts);
  $this->set('accounttype', $accounttype);
   $this->set('client_id', $client_id);
}


 public function delete($id, $client_id) {
  
    $id = $this->request->params['pass'][0];
   
    //the request must be a post request
    //that's why we use postLink method on our view for deleting user
   if( $this->request->is('get') ){
   
        $this->Session->setFlash('Delete method is not allowed.');
        $this->redirect(array('action' => 'index',$client_id));
       
        //since we are using php5, we can also throw an exception like:
        //throw new MethodNotAllowedException();
    }else{
   
        if( !$id ) {
            $this->Session->setFlash('Invalid id for Account');
            $this->redirect(array('action'=>'index',$client_id));
           
        }else{
            //delete user
            if( $this->Account->delete($id, $cascade = true) ){
                //set to screen
                $this->Session->setFlash('Account was deleted.');
                //redirect to users's list
                $this->redirect(array('action'=>'index',$client_id));
               
            }else{ 
                //if unable to delete
                $this->Session->setFlash('Unable to delete Account.');
                $this->redirect(array('action' => 'index'));
            }
        }
    }
} 
}
</pre>

*
--------------------------------------------------------------------------------------
*
*
*
*3.- **This is the view:***
*
--------------------------------------------------------------------------------------
*

       echo $this->Html->addCrumb('Clients', '/clients'); 
       echo $this->Html->addCrumb('Accounts', '/accounts'); 
       echo $this->Form->create('Account'); 
            foreach($accounts as $account): ?>

    <table cellspacing=0 cellpadding=0 style="width:600px">
<tr>
 <td>
   <?php echo $account['Accounttype']['description'] ?></br> 
                 </td> 
 <td>
                  <?php echo $this->Html->link('Edit', array('action' => 
'edit', $account['Account']['id'], $client_id)); ?>
                 </td> 
 <td>
                 <?php // echo $this->Html->link('Del', array('action' => 
'delete', $account['Account']['id'], $client_id)); ?>
                </td> 
<td>
                <?php echo $this->Html->link('Add Event', 
'/events/add/'.$account['Account']['id'], array('action' => 'add', 
$account['Account']['id'])); ?></td>  
<td><?php echo $this->Form->postLink('Delete',array('action' => 'delete', 
$account['Account']['id'], $client_id),null,  'Are you sure?');?></td>
         </tr>  
</table>
 <?php 
endforeach; echo $this->Form->end();
?>
<div style="float:right"><?php  echo $this->Html->link('Back', 
array('controller' => 'clients', 'action' => 'index')); ?></div>

--------------------------------------------------------------------------------------

*What happened*

Everything works great but delete button won't delete the last row 
remaining in accounts list i meant delete works but not in the last row 
remaining and i think the problem is when the delete postLink() get render, 
it formed well in all rows but not in the first one the "(form blablabla) 
(/form)" its not created in the first row and i just get (input blablabla) 
without form tag so when i click "delete" nothing happens! just get # at 
the end of the url

*What I expected to happen*

i expect to get a beautiful blank list saying "there are not accounts 
assigned to this client" when i delete the last row!

pd: thanks for help me out! and sorry for my bad english!

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