Если у меня есть массив объектов, каков самый легкий способ удалить целый массив объектов (или поместить его этот путь, вся таблица ORM)? Я имею:
<cfset allUsers = EntityLoad("User", {}, false)/>
Теперь для удаления всех объектов я использовал бы своего рода цикл? Если так, как я получаю доступ к отдельным первичным ключам объекта в? Я попробовал:
<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) />
но это не работало...
EntiteLoad вернет массив объектов объекта, чтобы мы могли зацикливаться и использовать EntityDelete:
<cfloop array="#allUsers#" index="User">
<cfset entityDelete( User )>
</cfloop>
как всегда, когда удаление данных осторожны! Я обычно предпочитаю мягкое удаление.
Если удалить массив (с точки зрения бесплатной памяти) - это то, что вы хотите сделать, следующее должно работать:
<cfset allUsers = "">
<!--- or --->
<cfset StructDelete(variables, "allUsers")>
Конечно, это только удалит одну ссылку. Если объекты (alloosers или отдельных членов массива) ссылаются в какое-то время, эти ссылки будут продолжать работать.
Если вы хотите использовать нотацию массива, вы делаете это так.
<cfloop from="1" to="#arraylen(allUsers)#" index="i">
<cfset entityDelete( allUsers[i] )>
</cfloop>
Еще один способ сделать это, не делая ColdFusion, все работы - это выполнить запрос.
<cfset ormexecutequery("DELETE FROM User",true)>