Thanks for resolving my problem, you are a star.
I noticed somehow when I baked the project there were duplicate
models, two files for each one image.php and one images.php and I
guess in a daze I'd added this to the wrong one.
I've learnt a valuable lesson and am very grateful.
Adam.
On Feb 25, 9:35 am, "Krissy Masters" <naked.cake.ba...@gmail.com>
wrote:
> <?php
> class Image extends AppModel {
>
> not "images" models are singular
>
> afterDelete is in Image Model so no need $images = $this->Image->find('all',
> $conditions);
>
> change to:
>
> $images = $this->find('all', $conditions);
>
> K
>
>
>
> -----Original Message-----
> From: cake-php@googlegroups.com [mailto:cake-php@googlegroups.com] On Behalf
>
> Of adam_g2000
> Sent: Thursday, February 24, 2011 4:36 PM
> To: CakePHP
> Subject: Re: afterDelete not running as intended
>
> 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
> <jeremybu...@classoutfit.com> 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
>
> > jeremybu...@classoutfit.comhttp://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.organdhelp
> others with their CakePHP related questions.
>
> > > To unsubscribe from this group, send email to
> > > cake-php+unsubscribe@googlegroups.com For more options, visit this group
> athttp://groups.google.com/group/cake-php
>
> --
> 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
> cake-php+unsubscribe@googlegroups.com 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
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php
No comments:
Post a Comment