CF9 entityDelete: كيفية حذف الكيانات
-
23-09-2019 - |
سؤال
إذا كان لدي مجموعة من الكيانات ، فما هي أسهل طريقة لحذف المجموعة بأكملها من الكيانات (أو لوضعها على هذا النحو ، طاولة ORM بأكملها)؟ أملك:
<cfset allUsers = EntityLoad("User", {}, false)/>
الآن لحذف جميع الكيانات ، هل سأستخدم نوعًا من الحلقة؟ إذا كان الأمر كذلك ، كيف يمكنني الوصول إلى المفاتيح الأولية للكيان الفردي في الداخل؟ حاولت:
<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) />
لكن هذا لم ينجح ...
المحلول
سيعود EntityLoad مجموعة من كائنات الكيان حتى نتمكن من حلق ذلك واستخدام EntityDelete:
<cfloop array="#allUsers#" index="User">
<cfset entityDelete( User )>
</cfloop>
كما كان دائما عند حذف البيانات كن حذرا! أنا أفضل عمومًا حذفًا ناعمًا.
نصائح أخرى
إذا كنت ترغب في استخدام تدوين الصفيف ، فأنت تفعل ذلك مثل هذا.
<cfloop from="1" to="#arraylen(allUsers)#" index="i">
<cfset entityDelete( allUsers[i] )>
</cfloop>
هناك طريقة أخرى للقيام بذلك دون جعل Coldfusion القيام بكل العمل هي تنفيذ استعلام.
<cfset ormexecutequery("DELETE FROM User",true)>
إذا كان حذف الصفيف (من حيث تحرير الذاكرة) هو ما تريد القيام به ، فيجب أن يعمل ما يلي:
<cfset allUsers = "">
<!--- or --->
<cfset StructDelete(variables, "allUsers")>
بالطبع هذا من شأنه إزالة مرجع واحد فقط. إذا تم الرجوع إلى الكائنات (التلميحات أو أعضاء الصفيف الفردي) في مكان آخر ، فستستمر هذه المراجع في العمل.