ستساعدك المقالة التالية: كيفية استخدام الحقول المتعددة التبعية في نموذج المسؤول Magento 2
<؟ php
مورد مساحة الاسم \ ملحق \ بلوك \ Adminhtml \ ملحق \ تحرير \ علامة تبويب ؛
استخدام Magento \ Backend \ Block \ Template \ Context ؛
استخدام Magento \ Framework \ Data \ FormFactory ؛
استخدام Magento \ Framework \ Registry ؛
استخدام Magento \ Store \ Model \ System \ Store ؛
استخدم Magento \ Backend \ Block \ Widget \ Form \ Generic ؛
استخدم Magento \ Backend \ Block \ Widget \ Tab \ TabInterface ؛
استخدام Magento \ Catalog \ Model \ ProductFactory ؛
يمتد تفصيل فئة الأدوات العامة TabInterface
{
محمية $ _systemStore؛
محمي $ productFactory ؛
الوظيفة العامة __construct (
سياق $ سياق ،
التسجيل $ Registry ،
FormFactory $ formFactory ،
ProductFactory $ productFactory ،
تخزين $ systemStore ،
مجموعة بيانات $ = []
)
{
$ هذا -> _ systemStore = $ systemStore ؛
$ this-> productFactory = $ productFactory ؛
الأصل :: __ الإنشاء ($ Context، $ Registry، $ formFactory، $ data)؛
}
getTabLabel () الوظيفة العامة
{
return __ (“خيارات”) ؛
}
getTabTitle () الوظيفة العامة
{
return __ (“خيارات”) ؛
}
canShowTab () الوظيفة العامة
{
العودة صحيح
}
الوظيفة العامة مخفية ()
{
عودة كاذبة؛
}
وظيفة محمية _prepareForm ()
{
يحاول {
$ model = $ this -> _ coreRegistry-> Registry (‘current_Extension_option’) ؛
$ form = $ this -> _ formFactory-> create () ؛
$ form-> setHtmlIdPrefix (‘page_’) ؛
مجموعة الحقول $ = شكل دولار-> addFieldset (‘base_fieldset’، [‘legend’ => __(‘Settings’)]) ؛
إذا ($ model-> getId ()) {
$ fieldset-> addField (‘id’، ‘hidden’، [‘name’ => ‘id’]) ؛
}
تكرار الدفع بالدولار = مجموعة الحقول بالدولار -> حقل إضافة (
“تكرار_الدفع”،
‘يختار’،
[
‘name’ => ‘repeat_payment’,
‘label’ => __(‘Repeat Payments’),
‘title’ => __(‘Repeat Payments’),
‘required’ => true,
‘options’ => [‘1’ => __(‘Daily’),
‘2’ => __(‘Weekly’),
‘3’ => __(‘Monthly’),
‘4’ => __(‘Every…’),
]
]
) ؛
FrequeancyOption $ = fieldset $-> addField (
“خيار التردد”،
‘يختار’،
[
‘name’ => ‘frequancy_option’,
‘label’ => __(”),
‘title’ => __(”),
‘required’ => true,
‘options’ => $this->frequeancyOption()
]
) ؛
$ form-> setValues ($ model-> getData ()) ؛
$ this-> setForm (نموذج $) ؛
$ this-> setChild (
“شكل_بعد” ،
$ this-> getLayout () -> createBlock (‘Magento \ Backend \ Block \ Widget \ Form \ Element \ Dependence’)
-> addFieldMap ($ تكرار الدفع-> getHtmlId () ، $ تكرار الدفع-> getName ())
-> addFieldMap ($ FrequeancyOption-> getHtmlId () ، $ FrequeancyOption-> getName ())
-> addFieldDependence ($ FrequeancyOption-> getName () ، $ تكرار الدفع-> getName () ، 4)
) ؛
} catch (\ استثناء $ e) {
\ Magento \ Framework \ App \ ObjectManager :: getInstance () -> get (‘Psr \ Log \ LoggerInterface’) -> info ($ e-> getMessage ()) ؛
}
الوالد العائد :: _ PreparForm ()؛
}
الوظيفة المحمية _isAllowedAction ($ ResourceId)
{
إرجاع $ this -> _ authorization-> isAllowed ($ ResourceId)؛
}
تردد الوظيفة المحمية
{
$ opt = [‘1’ => __(‘1st’),
‘2’ => __(‘2nd’),
‘3’ => __(‘3rd’),
]؛
لـ ($ i = 4 ؛ $ i <= 365 ؛ $ i ++) {
$ اختيار[$i] = $ i. “th” ؛
}
العودة $ opt؛
}
}