التحقق من صحة مكون التكوين Symfony3

0

المجتمع أنا بحاجة لمساعدتكم. لدي ملف التكوين:

payments:
    methods:
        paypal:
           enabled: false
           allowed_countries:
              - <country>
              - ...
        credit_card:
           disallowed_countries:
              - <country>
              - ...

كيف يمكنني التحقق من استخدام TreeBuilder إذا كان المصفوفة تحتوي على مصفوفة واحدة فقط من المصفوفين المسموح بهما : allow_countries أو disallowed_countries ورمي الاستثناء إذا كان هناك مصفوفتان معًا؟ Symfony الإصدار 3.2

1 إجابة

0

يمكنك إضافة المزيد من التحقق المعقد إلى منشئ شجرة التكوين الخاص بك باستخدام قواعد التحقق من الصحة مع ExprBuilder .

سيبدو هذا مثل:

$rootNode
    ->isRequired()
    ->validate()
        ->ifTrue(function($options) {
            return !($options['allowed_countries'] xor $options['disallowed_countries']);
        })
        ->thenInvalid('Either define allowed_countries or disallowed_countries, not both')
        ->end()
    ->children()
        ->arrayNode('allowed_countries')
            ->scalarPrototype()->end()
        ->end()
        ->arrayNode('disallowed_countries')
            ->scalarPrototype()->end()
        ->end()
    ->end();
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام