Hi again Jeremy!

Thanks for that, there's my sanity check! I've done that, it's now
sitting in my Images Model. Unfortunately, nothing happens still....

Here's the entire model, am I still doing something stupid?

<?php
class images extends AppModel {
        var $name = 'images';
        var $validate = array(
                'filename' => array(
                        'notempty' => array(
                                'rule' => array('notempty')
                        ),
                ),
        );

        function afterDelete() {
                // Re-sort orders to remove the 'hole'
                // Create an array of the image table contents of IDs and 
Orders.
                $conditions = array(
                                                'fields' => array('id','order'),
                                                'order' => 'Image.order ASC'
                );
                $images = $this->Image->find('all', $conditions);
                //Loop through looking for order/count disparity and tidying up 
when
disparity is found.
                $counter = 1;
                foreach ($images as $image):
                        $image['Image']['order'] = $counter;
                        $this->Image->save($image, false, array('id','order'));
                        $counter++;
                endforeach;
        }
}
?>

On Feb 24, 7:22 pm, Jeremy Burns | Class Outfit
<[email protected]> wrote:
> Is this in a model or a controller? I am guessing it's in a controller 
> because you have a redirect statement. To make it run as afterDelete you need 
> to move it into the model (afterDelete is a model callback) and then you'd 
> need to remove the redirect statement because it will error.
>
> Jeremy Burns
> Class Outfit
>
> [email protected]http://www.classoutfit.com
>
> On 24 Feb 2011, at 03:36, adam_g2000 wrote:
>
>
>
> > Hi Guys,
>
> > I have this method I've written...
>
> > function tidyup() {
> >    //Re-sort orders to remove the 'hole'
> >    // Create an array of the image table contents of IDs and Orders.
> >    $conditions = array(
> >                                    'fields' => array('id','order'),
> >                                    'order' => 'Image.order ASC'
> >    );
> >    $images = $this->Image->find('all', $conditions);
> >    //Loop through looking for order/count disparity and tidying up when
> > disparity is found.
> >    $counter = 1;
> >    foreach ($images as $image):
> >            if ($image['Image']['order'] != $counter) {
> >                    $image['Image']['order'] = $counter;
> >                    $this->Image->save($image, false, array('id','order'));
> >            }
> >            $counter++;
> >    endforeach;
> >    $this->redirect(array('action' => 'index'));
> > }
>
> > ...to reorder a list of Images in a database table once one is
> > deleted. This works perfectly.
>
> > However, what I really want to do is have it triggered automatically
> > once an Image is deleted.
>
> > So I would expect just changing function tidyup to function
> > afterDelete should work perfectly. When I do that, the function never
> > runs.
>
> > Can I get a sanity check please? Can anyone spot my error?
>
> > Thanks in advance for any offers of assistance.
>
> > --
> > Our newest site for the community: CakePHP Video 
> > Tutorialshttp://tv.cakephp.org
> > Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help 
> > others with their CakePHP related questions.
>
> > To unsubscribe from this group, send email to
> > [email protected] For more options, visit this group 
> > athttp://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
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to