Phalcon: كيفية الحصول على / التحقق من صحة الكائنات ذات الصلة قبل الحفظ؟

StackOverflow https://stackoverflow.com//questions/23021023

  •  21-12-2019
  •  | 
  •  

سؤال

لدي صوت نموذج وصمع النموذج.
عندما أقوم بحفظ كائن الصوت، أريد التحقق من صحة أن هناك ما لا يقل عن 1 - مواد صوتية مرفقة به.

قمت بإنشاء مصدق مخصص لذلك.
حاولت استخدام $ Audio-> GetRelated () في الأصل، لكنها تحافظ على محاولة جلب في قاعدة البيانات للحصول على المعلومات. نظرا لأن التحقق من الصحة يحدث قبل الحفظ (وهو أمر رائع)، فأنا أتلقى قائمة فارغة، وبالتالي يعيد التحقق من ذلك دائما خطأ.

عندما أقوم بطباعة كائن الصوت دون حفظ، أستطيع أن أرى مواد صوتية في الحقل _related من كائن الصوت (Print_R ($ Audio)؛):
[_related: محمي]=> صفيف
( [udioCategory]=> صفيف
(

[0]=> كائن GRQ \ Audio \ AudioCategory ([...])
[1]=> GRQ \ Audio \ AudioCategory كائن ([...])
)
)

إذا حاولت طباعة $ Audio-> MudioCategory مباشرة، أحصل على إشعار:
الوصول إلى العقار غير محدد GRQ \ Audio \ Audio :: سندوي الدسم ولا شيء عاد.

إذا اتصلت $ Audio-> GetRelated ()، أحصل على كائن من النوع Phalcon \ MVC \ Model \ JureSt \ Simple مع _ Result فارغة. (وهو المنطق، لأنه ذهب وتفتيش في قاعدة البيانات ...)


لذلك، سؤالي هو:
كيف يمكنني الحصول على الحقول ذات الصلة والتحقق من صحةها قبل حفظها؟


هنا هو اختبار تحكم (تقصير) الخاص بي:

giveacodicetagpre.

هنا هو نموذج الصوت (المختصرة):

giveacodicetagpre.

هنا هو نموذج فئة الصوت (المختصرة):

giveacodicetagpre.

هنا هو التحقق المخصص الخاص بي (الذي لا يعمل ويسترجع دائما خطأ):

giveacodicetagpre.

هل كانت مفيدة؟

المحلول

لذلك، وجدت طريقة لتحقيق هذا.لست متأكدا من أنها أفضل طريقة، لكنها تعمل:
نظرا لأن القيم محمية، اضطررت إلى فضحهم من كائناتي.
لذلك قمت بإنشاء نموذج قاعدة تمديد نفسي:

نموذج الأساس:

giveacodicetagpre.

ثم غيرت فئة الصوت الخاصة بي إلى تمديد من نموذجي الأساسي:

نموذج الصوت (المبسط):

giveacodicetagpre.

طراز My MudioCategory (المبسط) بقيت إلى حد كبير:

giveacodicetagpre.

، ويستخدم My Validator الآن طريقة GetInternalRelated للتحقق من صحة:

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top