Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CF9 EntityDelete: How to delete entities

If I have an array of entities, whats the easiest way of deleting the entire array of entities (or to put it this way, the entire ORM table)? I have:

<cfset allUsers = EntityLoad("User", {}, false)/>

Now to delete all the entities, would I use some sort of a loop? If so, how do I access individual entity primary keys within? I tried:

<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) /> 

but that didn't work...

like image 428
Doz Avatar asked Jan 29 '10 06:01

Doz


2 Answers

EntityLoad will return an array of the entity objects so we can loop over that and use entityDelete:

<cfloop array="#allUsers#" index="User">
   <cfset entityDelete( User )>
</cfloop>

As ever when deleting data be careful! I generally prefer a soft delete.

like image 60
Sam Farmer Avatar answered Oct 04 '22 20:10

Sam Farmer


If you wish to use array notation, you do it like this.

<cfloop from="1" to="#arraylen(allUsers)#" index="i">
    <cfset entityDelete( allUsers[i] )>
</cfloop>

Another way to do this without making ColdFusion do all the work is to execute a query.

<cfset ormexecutequery("DELETE FROM User",true)>
like image 20
Jayson Avatar answered Oct 04 '22 20:10

Jayson