Apologies, my example should say if(! $this->Attraction->isDeleted($id)) to
match the flash message.


On 27 July 2014 11:36, Stephen S <[email protected]> wrote:

> You can create a custom app model method to overcome this, something like
> this:
>
> public function isDeleted($recordId) {
>     if(! $this->exists($recordId)) {
>         return true;
>     }
>
>     if(! $this->hasField('deleted')) {
>          return false;
>     }
>
>     $record = $this->find('count', array(
>         'conditions' => array(
>             "{$this->alias}.id" => $recordId,
>             'NOT' => array("{$this->alias}.deleted' => null)
>         )
>     );
>
>     return ($record > 0) ? true : false;
> }
>
> Then within your controller, something like this:
>
> $this->Attraction->delete($id);
> if($this->Attraction->isDeleted($id)) {
>     $this->Session->setFlash(__('Attraction could not be deleted'));
> }
>
> All the model method will do is check if the row doesn't exist (true, hard
> delete), if it does exist and doesn't have the deleted field then soft
> delete isn't possible so false it isn't deleted, otherwise count if the
> record exists with deleted not set to null and return true or false based
> on the result.
>
> This is the main issue with using $this->Model->delete() for both soft and
> hard delete, if you created your own method like
> $this->Model->detectAndDelete() which deletes using the appropriate method
> by checking hasField('deleted') you wouldn't need the new model check.
>
> Anyhow I hope this helps.
>
>
> On 27 July 2014 11:22, Sam Clauw <[email protected]> wrote:
>
>> Allright, I should know that, you're totally right! It works for my now,
>> except my flash error of course. I could put it outside the if
>> ($this->Attraction->delete($id)) {} check, but then the flash would always
>> been shown, even if there was no delete...
>>
>> --
>> Like Us on FaceBook https://www.facebook.com/CakePHP
>> Find us on Twitter http://twitter.com/CakePHP
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "CakePHP" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/cake-php.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Kind Regards
>  Stephen Speakman
>



-- 
Kind Regards
 Stephen Speakman

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to