Field ChoiceType (کشویی ، دکمه های رادیویی و کادر انتخاب را انتخاب کنید)

ساخت وبلاگ

یک فیلد چند منظوره استفاده می شود تا کاربر بتواند یک یا چند گزینه را "انتخاب کند". می توان آن را به عنوان برچسب انتخابی ، دکمه های رادیویی یا کادر انتخاب ارائه داد.

برای استفاده از این قسمت ، باید گزینه های انتخاب یا گزینه انتخاب_ لودر را مشخص کنید.

ارائه شده به عنوان می تواند برچسب های مختلفی باشد (به تصویر زیر مراجعه کنید)
پیام نامعتبر پیش فرض انتخاب انتخاب شده نامعتبر است.
پیام نامعتبر قانونی The value>معتبر نیست.
نوع والدین شکل
طبقه نوع انتخاب

لیست کامل گزینه های تعریف شده و به ارث برده توسط این نوع فرم در دسترس است که این دستور را در برنامه شما اجرا می کند:

# "Footype" را با نام کلاس نوع فرم خود جایگزین کنید $اشکال زدایی بن/کنسول PHP: FORM FOOTYPE

استفاده از مثال

ساده ترین راه برای استفاده از این قسمت ، تعریف گزینه گزینه ها برای مشخص کردن گزینه ها به عنوان یک آرایه انجمنی است که کلیدها برچسب هایی هستند که برای کاربران نهایی نمایش داده می شوند و مقادیر آرایه مقادیر داخلی مورد استفاده در قسمت فرم هستند:

1 2 3 4 5 6 7 8 9 10
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن('isattending'، نوع انتخاب::کلاس ، ["انتخاب" => [ 'شاید' => خالی, 'آره' => درست است، واقعی, "نه" => دروغ, ], ]);

این یک کشویی انتخابی مانند این ایجاد می کند:

اگر کاربر NO را انتخاب کند ، فرم برای این قسمت نادرست باز می گردد. به همین ترتیب ، اگر داده های شروع برای این قسمت صحیح باشد ، بله به صورت خودکار انتخاب می شود. به عبارت دیگر ، انتخاب هر مورد مقداری است که می خواهید در کد PHP دریافت و تنظیم کنید ، در حالی که کلید برچسب است که به کاربر نشان داده می شود.

مثال پیشرفته (با اشیاء!)

این قسمت گزینه های زیادی دارد و بیشتر نحوه نمایش فیلد را کنترل می کند. در این مثال ، داده های اساسی برخی از موارد دسته ای است که دارای یک روش getName () است:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 28 29 30 31 32 33 34 35 36
استفاده کنید برنامهوجود، موجودیتدسته بندی; استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن('دسته بندی'، نوع انتخاب::کلاس ، ["انتخاب" => [ جدیددسته بندی('cat1'), جدیددسته بندی('cat2'), جدیددسته بندی('cat3'), جدیددسته بندی('cat4'), ], // "نام" یک مسیر خاص است ، به این معنی که Symfony به دنبال یک عموم خواهد بود // خاصیت یا یک روش عمومی مانند "getName ()" برای تعریف ورودی // مقدار رشته ای که توسط فرم ارسال می شود "انتخاب_و" => 'نام', // پاسخ به تماس برای بازگشت برچسب برای یک انتخاب معین // در صورت استفاده از محل نگهدارنده ، ممکن است مقدار خالی آن (تهی) منتقل شود اما // برچسب آن توسط گزینه "مکان نگهدارنده" خود تعریف شده است 'Choice_label' => تابع (؟دسته بندی$دسته بندی) <برگشت $دسته بندی؟strtoupper ($دسته بندی>getName ()):'';>, // ویژگی های HTML را برای هر ورودی گزینه برمی گرداند (ممکن است رادیو/کادر انتخاب باشد) 'Choice_attr' => تابع (؟دسته بندی$دسته بندی) <برگشت $دسته بندی ? ['کلاس' => 'دسته بندی_'. strtolower ($دسته بندی>getName())] : [];>, // هر گزینه می تواند از یک مسیر خاصیت رشته یا هر تماس تلفنی استفاده کند // هر انتخاب را به عنوان استدلال تصویب کرد ، اما ممکن است لازم نباشد 'دسته بندی بر اساس' => تابع () <// به طور تصادفی موارد را به 2 گروه اختصاص دهید برگشترند (0, 1) == 1 ? "گروه A" : "گروه B";>, // پاسخ به تماس برای بازگشت آیا یک گروه ارجح است "preferred_choices" => تابع (؟دسته بندی$دسته بندی) <برگشت $دسته بندی && 100 <$دسته بندی>getArticleCounts();>, ]);

همچنین می توانید نام_ نام هر انتخاب را سفارشی کنید. می توانید در مورد همه این گزینه ها در بخش های زیر اطلاعات بیشتری کسب کنید.

نگهدارنده مکان یک قسمت خاص است ، هنگامی که گزینه ها اختیاری هستند ، اولین مورد در لیست باید خالی باشد ، بنابراین کاربر می تواند انتخاب نشده باشد. حتماً هنگام استفاده از تماس تلفنی ، همیشه انتخاب خالی را تهی کنید.

برچسب ، کادر انتخاب یا دکمه های رادیویی را انتخاب کنید

این زمینه بسته به گزینه های گسترش یافته و متعدد ممکن است به عنوان یکی از چندین زمینه HTML ارائه شود:

نوع عنصر منبسط چندگانه
برچسب را انتخاب کنید دروغ دروغ
برچسب را انتخاب کنید (با چند ویژگی) دروغ درست است، واقعی
دکمه های رادیویی درست است، واقعی دروغ
کادر انتخاب درست است، واقعی درست است، واقعی

سفارشی کردن متن هر گزینه (برچسب)

به طور معمول ، کلید آرایه هر مورد در گزینه گزینه ها به عنوان متنی که به کاربر نشان داده شده است استفاده می شود. اما این می تواند از طریق گزینه Choice_Label کاملاً سفارشی شود. برای اطلاعات بیشتر آن را بررسی کنید.

گزینه های گروه بندی

شما می توانید با عبور از یک آرایه انتخاب چند بعدی ، عناصر A را به داخل گروه بندی کنید:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن("StockStatus"، نوع انتخاب::کلاس ، ["انتخاب" => [ "وضعیت اصلی" => [ 'آره' => "Stock_yes", "نه" => 'Stock_no', ], "خارج از وضعیت سهام" => [ "پشتوانه" => "Stock_backordered", "قطع" => 'Stock_discontinued', ], ], ]);

برای به دست آوردن خیالی تر ، به جای آن از گزینه Group_by استفاده کنید.

گزینه های میدانی

انتخاب

نوع: پیش فرض آرایه: []

این اساسی ترین روش برای مشخص کردن گزینه هایی است که باید توسط این زمینه استفاده شود. گزینه گزینه ها آرایه ای است ، که در آن کلید آرایه برچسب مورد است و مقدار آرایه مقدار مورد است:

1 2 3 4 5 6 7 8 9
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن('در انبار'، نوع انتخاب::کلاس ، ["انتخاب" => [ 'در انبار' => درست است، واقعی, 'تمام شده' => دروغ, ], ]);

اگر مقادیر انتخابی وجود داشته باشد که مقیاس پذیر نباشند یا نمایندگی رشته ای ، Symfony منحصر به فرد نیست ، از عدد صحیح افزایش دهنده به عنوان مقادیر استفاده می کند. هنگامی که فرم ارسال می شود ، مقادیر صحیح با انواع صحیح به مدل اختصاص می یابد.

Choice_attr

نوع: آرایه ، فراخوانی ، رشته یا Propertypath به طور پیش فرض: []

از این استفاده کنید تا ویژگی های اضافی HTML را به هر انتخاب اضافه کنید. این می تواند یک آرایه انجمنی باشد که در آن کلیدها با کلیدهای انتخاب مطابقت دارند و مقادیر ویژگی های هر انتخاب ، یک تماس قابل تماس یا یک مسیر خاص (دقیقاً مانند انتخاب_ لابل) هستند.

در صورت آرایه ، از کلیدهای آرایه انتخاب باید به عنوان کلیدها استفاده شود:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 28
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن("میوه"، نوع انتخاب::کلاس ، ["انتخاب" => [ 'سیب' => 1, 'موز' => 2, "دوریان" => 3, ], 'Choice_attr' => [ 'سیب' => ["رنگ داده" => 'قرمز'], 'موز' => ["رنگ داده" => 'رنگ زرد'], "دوریان" => ["رنگ داده" => 'سبز'], ], ]); // یا استفاده از تماس قابل تماس $سازنده>اضافه کردن("حضور"، نوع انتخاب::کلاس ، ["انتخاب" => [ 'آره' => درست است، واقعی, "نه" => دروغ, 'شاید' => خالی, ], 'Choice_attr' => تابع ($انتخاب, $کلید, $ارزش) <// کلاس مانند شرکت_ه ، حضور در_ و غیره را اضافه می کند برگشت ['کلاس' => "حضور در_". strtolower ($کلید)];>, ]);

هنگام تعریف نوع سفارشی ، باید از یاور کلاس Choicelist استفاده کنید:

1 2 3 4 5 6 7 8 9
استفاده کنید برنامهوجود، موجودیتدسته بندی; استفاده کنید تقارنجزءفرمانتخاب کنندهانتخاب کننده; // . $سازنده>اضافه کردن("انتخاب"، نوع انتخاب::کلاس ، ['Choice_attr' =>انتخاب کننده::جاذبه ($این, تابع (؟دسته بندی$دسته بندی) <برگشت $دسته بندی ? ["داده-یوئید" => $دسته بندی>getUuid()] : [];>), ]);

انتخاب_

نوع: فراخوانی ، رشته یا Propertypath پیش فرض: NULL

هنگام استفاده از انواع انتخابی از پیش تعریف شده از کتابخانه های Symfony Core یا فروشنده (یعنی CountryType) این گزینه به شما امکان می دهد تا یک تماس پذیر را تعریف کنید که هر انتخاب را به عنوان تنها استدلال در نظر می گیرد و باید برای حفظ آن یا نادرست برای دور انداختن آن برگردد:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 28 29 30 31 32 33 34 35 36
// src/form/type/amdresstype. php نام برنامهفرمنوع; استفاده کنید تقارنجزءفرمنوع چکیده; استفاده کنید تقارنجزءفرمافزونههستهنوعنوع کشور; استفاده کنید تقارنجزءفرمformbuilderinterface; استفاده کنید تقارنجزءOptionsResolverOptionsResolver; طبقه نوع آدرس تمدید کردن نوع چکیده <عمومی تابع پیکربندی ها(OptionsResolver$حل کننده) <$حل کننده >setDefaults ([[// این نوع را قادر به پذیرش مجموعه محدودی از کشورها کنید "مجاز_سونتری ها" => خالی, ]) ;> عمومی تابع ساخت(formbuilderinterface$سازنده، آرایه$گزینه ها) <$مجازات مجاز = $گزینه ها["مجاز_سونتری ها"]; $سازنده // . >اضافه کردن('کشور'، نوع کشور::کلاس ، [// اگر گزینه آدرس "مجاز_ countries" منتقل شود ، // از آن برای ایجاد فیلتر استفاده کنید "انتخاب_فیلتر" => $مجازات مجاز ? تابع ($کد کشور) استفاده کنید ($مجازات مجاز) <برگشتin_array ($کد کشور, $مجازات مجاز, درست است، واقعی);> : خالی, ]) ;>

گزینه می تواند یک مسیر قابل تماس یا یک مسیر خاص باشد که گزینه ها اشیاء هستند:

1 2 3 4 5 6 7
// . $سازنده >اضافه کردن('دسته بندی'، نوع انتخاب::کلاس ، [// . "انتخاب_فیلتر" => "قابل انتخاب", ]) ;

با توجه به اینکه این آدرس می تواند ورود به مجموعه مجموعه باشد ، باید از یاور کلاس Choicelist استفاده کنید تا بتوانید حافظه پنهان را فعال کنید:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// src/form/type/amdresstype. php // . استفاده کنید تقارنجزءفرمانتخاب کنندهانتخاب کننده; // . "انتخاب_فیلتر" => $مجازات مجاز؟انتخاب کننده::فیلتر (// نوع را به عنوان آرگومان اول منتقل کنید $این, تابع ($کد کشور) استفاده کنید ($مجازات مجاز) <برگشتin_array ($کد کشور, $مجازات مجاز, درست است، واقعی);>, // عبور از گزینه ای که باعث می شود فیلتر "متفاوت" برای محاسبه یک هش منحصر به فرد باشد $مجازات مجاز ) : خالی, // . 

انتخاب_بله

نوع: رشته ، قابل تماس ، کاذب یا Propertypath پیش فرض: NULL

به طور پیش فرض ، کلید آرایه هر مورد در گزینه گزینه ها به عنوان متنی که به کاربر نشان داده شده است استفاده می شود. گزینه Choice_Label به شما امکان می دهد کنترل بیشتری را انجام دهید:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن("حضور"، نوع انتخاب::کلاس ، ["انتخاب" => [ 'آره' => درست است، واقعی, "نه" => دروغ, 'شاید' => خالی, ], 'Choice_label' => تابع ($انتخاب, $کلید, $ارزش) <if (درست است، واقعی === $انتخاب) <برگشت "قطعاً!";> برگشتstrtoupper ($کلید); // یا اگر می خواهید یک کلید را ترجمه کنید // بازگشت "فرم. انتخاب.". $ key ؛ //retu new TranslatableMessage($key, false === $choice ? [] : ['%status%' =>$ مقدار] ، "فروشگاه") ؛>, ]);

با شروع از Symfony 6. 2 ، می توانید از هر شیئی استفاده کنید که به عنوان مقدار برچسب انتخاب ، قابل ترجمه را اجرا کند.

این روش برای هر انتخاب فراخوانی شده است ، از شما انتخاب $ و $ $ از آرایه گزینه ها (مقدار اضافی $ مربوط به انتخاب_Value است). این به شما می دهد:

اگر مقادیر انتخاب شما اشیاء هستند ، پس انتخاب_ لابل نیز می تواند یک مسیر خاصیت باشد. تصور کنید که کلاس وضعیت با روش getDisplayName () دارید:

1 2 3 4 5 6 7 8 9 10 11
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن("حضور"، نوع انتخاب::کلاس ، ["انتخاب" => [ جدیدوضعیت (وضعیت::آره)،جدیدوضعیت (وضعیت::نه) ،جدیدوضعیت (وضعیت::شاید)، ]،'Choice_label' => 'DisplayName', ]);

در صورت تنظیم FALSE ، تمام برچسب های برچسب برای ورودی های رادیویی یا کادر انتخاب دور می شوند. همچنین می توانید کاذب را از تماس قابل بازگشت برای دور انداختن برچسب های خاص برگردانید.

هنگام تعریف نوع سفارشی ، باید از یاور کلاس Choicelist استفاده کنید:

1 2 3 4 5 6
استفاده کنید تقارنجزءفرمانتخاب کنندهانتخاب کننده; // . $سازنده>اضافه کردن("انتخاب"، نوع انتخاب::کلاس ، ['Choice_label' =>انتخاب کننده::برچسب($این, 'DisplayName'), ]);

Loice_loader

از گزینه Choice_loader می توان به جای گزینه انتخاب استفاده کرد. این امکان را فراهم می کند تا هنگام واکشی فقط انتخاب برای مجموعه ای از مقادیر ارسال شده ، لیستی را به صورت تنبل یا جزئی ایجاد کنید (یعنی پرس و جو یک موتور جستجو مانند Elasticsearch می تواند یک فرآیند سنگین باشد).

اگر می خواهید از بارگذاری تنبل استفاده کنید ، می توانید از نمونه ای از CallbackCheLoader استفاده کنید:

1 2 3 4 5 6 7 8 9 10
استفاده کنید برنامهاستاتیک کلاس; استفاده کنید تقارنجزءفرمانتخاب کنندهلودرتماس تلفنی; استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن('loaded_choices'، نوع انتخاب::کلاس ، ["انتخاب_ لودر" => جدیدCallBackCheLoader (تابع () <برگشتاستاتیک کلاس::getConstants();>), ]);

این امر باعث می شود که تماس با استاتیک کلاس :: getConstants () در صورت هدایت درخواست و در صورت عدم وجود داده های قبل از تنظیم یا ارسال ، اتفاق نیفتد. در غیر این صورت گزینه های انتخابی نیاز به حل و فصل دارند.

هنگامی که شما یک نوع انتخاب سفارشی را تعریف می کنید که ممکن است در بسیاری از زمینه ها (مانند ورودی های یک مجموعه) مورد استفاده مجدد قرار گیرد یا به صورت یک بار دوباره مورد استفاده قرار گیرد ، باید از روشهای استاتیک Choicelist برای بسته بندی لودر استفاده کنید و لیست انتخاب را برای بهتر مناسب کنیدکارایی:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 28 29 30 31 32 33 34 35 36 37 38 39 40 41
استفاده کنید برنامهفرمانتخاب کنندهکار سفارشی; استفاده کنید برنامهاستاتیک کلاس; استفاده کنید تقارنجزءفرمنوع چکیده; استفاده کنید تقارنجزءفرمانتخاب کنندهانتخاب کننده; استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; استفاده کنید تقارنجزءOptionsResolverگزینه ها; استفاده کنید تقارنجزءOptionsResolverOptionsResolver; طبقه نوع ثابت تمدید کردن نوع چکیده <عمومی تابع پرپشت(): رشته <برگشتنوع انتخاب::class;> عمومی تابع پیکربندی ها(OptionsResolver$حل کننده) <$حل کننده>setDefaults ([[// مثال زیر یک تماس تلفنی را از تماس قابل تماس ایجاد می کند "انتخاب_ لودر" =>انتخاب کننده::تنبل($این, تابع() <برگشتاستاتیک کلاس::getConstants();>), // بسته به گزینه های دیگر می توانید لودر خود را نیز منتقل کنید "Some_key" => خالی, "انتخاب_ لودر" => تابع (گزینه ها$گزینه ها) <برگشتانتخاب کننده::لودر (// نمونه پسوند نوع یا نوع را که در آن قرار دارد عبور دهید // در حال حاضر لیست انتخاب را به عنوان اولین استدلال پیکربندی می کند $این, // گزینه دیگر را به لودر منتقل کنید جدیدCustomChoiceLoader ($گزینه ها["Some_key"]), // اطمینان حاصل کنید که نوع یک لودر را برای هر کلید ذخیره می کند // با استفاده از استدلال سوم ویژه "$ متفاوت" // آرایه ای که حاوی هر چیزی باشد که لودر را تغییر دهد [$گزینه ها["Some_key"]] );>, ]);>>

انتخاب_ نام

نوع: فراخوانی ، رشته یا Propertypath پیش فرض: NULL

نام قسمت داخلی انتخاب را کنترل می کند. شما معمولاً به این موضوع اهمیتی نمی دهید ، اما در برخی موارد پیشرفته ، ممکن است. به عنوان مثال ، این "نام" به شاخص دیدگاه های انتخاب در الگوی تبدیل می شود و به عنوان بخشی از ویژگی نام فیلد استفاده می شود.

این می تواند یک مسیر قابل تماس یا یک مسیر باشد. برای استفاده مشابه به انتخاب_ لابل مراجعه کنید. به طور پیش فرض ، ممکن است از کلید انتخاب یا یک عدد صحیح افزایش دهنده استفاده شود (از 0).

هنگام تعریف نوع سفارشی ، باید از یاور کلاس Choicelist استفاده کنید:

1 2 3 4 5 6
استفاده کنید تقارنجزءفرمانتخاب کنندهانتخاب کننده; // . $سازنده>اضافه کردن("انتخاب"، نوع انتخاب::کلاس ، ["انتخاب_ نام" =>انتخاب کننده::نام زمینه($این, 'نام'), ]);

مقدار پیکربندی شده باید یک نام فرم معتبر باشد. حتماً هنگام استفاده از تماس قابل تماس ، فقط نامهای معتبر را برگردانید. نامهای فرم معتبر باید از حروف ، ارقام ، تأثیرات ، خطوط و کلون ها تشکیل شود و نباید با یک خط یا روده بزرگ شروع شود.

Choice_Translation_domain

نوع: رشته ، بولی یا پیش فرض تهی: درست است

این گزینه تعیین می کند که آیا مقادیر انتخاب باید ترجمه شود و در کدام دامنه ترجمه یا خیر.

مقادیر گزینه Choice_Translation_Domain می تواند درست باشد (استفاده مجدد از دامنه ترجمه فعلی) ، نادرست (ترجمه غیرفعال) ، تهی (از دامنه ترجمه والدین یا دامنه پیش فرض استفاده می کند) یا رشته ای که نشان دهنده دامنه ترجمه دقیق برای استفاده است.

Cheom_Translation_Parameters

نوع: آرایه ، فراخوانی ، رشته یا Propertypath به طور پیش فرض: []

مقادیر انتخاب قبل از نمایش آن ترجمه می شوند ، بنابراین می تواند حاوی مکان های ترجمه باشد. این گزینه مقادیر مورد استفاده برای جایگزینی آن مکان ها را تعریف می کند. این می تواند یک آرایه انجمنی باشد که در آن کلیدها با کلیدهای انتخاب مطابقت دارند و مقادیر ویژگی های هر انتخاب ، یک تماس قابل تماس یا یک مسیر خاص (دقیقاً مانند انتخاب_ لابل) هستند.

با توجه به این پیام ترجمه:

YAML XML PHP

1 2 3
# ترجمه/پیام ها. en. yaml form. order. yes: "من سفارش خود را به شرکت ٪ ٪ ٪ ٪ تأیید می کنم" form. order. no: "من سفارش خود را لغو می کنم"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
 XLIFF نسخه="1. 2" xmlns="U: Oasis: نام ها: TC: XLIFF: سند: 1. 2"> فایل منبع="en" نوع داده="متن ساده" اصلی="file. ext"> بدنه> با هم متحد id="form. order. yes"> منبع>form. order. yes منبع> هدف>من سفارش خود را به شرکت ٪ ٪ ٪ هدف تأیید می کنم>با هم متحد> با هم متحد id="form. order. no"> منبع>form. order. no منبع> هدف>من هدف خود را لغو می کنم>با هم متحد>بدنه>فایل>XLIFF>
1 2 3 4 5
// ترجمه ها/پیام ها. fr. php برگشت [ 'form. order. yes' => "من سفارش خود را به شرکت ٪ ٪ ٪ تأیید می کنم", 'form. order. no' => "من سفارش خود را لغو می کنم", ];

می توانید مقادیر نگهدارنده مکان را به شرح زیر مشخص کنید:

1 2 3 4 5 6 7 8 9 10 11 12 13
$سازنده>اضافه کردن('شناسه', خالی, [ "انتخاب" => [ 'form. order. yes' => درست است، واقعی, 'form. order. no' => دروغ, ], 'Choice_Translation_Parameters' => تابع ($انتخاب, $کلید, $ارزش) <if (دروغ === $انتخاب) <برگشت [];> برگشت ['٪شرکت٪' => "Acme Inc."];>, ]);

در صورت آرایه ، از کلیدهای آرایه انتخاب باید به عنوان کلیدها استفاده شود:

1 2 3 4 5 6 7 8 9 10
$سازنده>اضافه کردن('شناسه', خالی, [ "انتخاب" => [ 'form. order. yes' => درست است، واقعی, 'form. order. no' => دروغ, ], 'Choice_Translation_Parameters' => [ 'form. order. yes' => ['٪شرکت٪' => "Acme Inc."], 'form. order. no' => [], ], ]);

پارامترهای ترجمه زمینه های کودک با همان گزینه والدین خود ادغام می شوند ، بنابراین کودکان می توانند از هر یک از متغیرهای والدین استفاده مجدد و یا غلبه کنند.

cheam_value

نوع: فراخوانی ، رشته یا Propertypath پیش فرض: NULL

رشته "مقدار" رشته را برای هر انتخاب برمی گرداند ، که باید در همه گزینه ها بی نظیر باشد. این در ویژگی Value در HTML استفاده می شود و در درخواست های Post/Put ارسال می شود. شما به طور معمول نیازی به نگرانی در مورد این موضوع ندارید ، اما ممکن است هنگام پردازش درخواست API مفید باشد (از آنجا که می توانید مقداری را که در درخواست API ارسال می شود پیکربندی کنید).

این می تواند یک مسیر قابل تماس یا یک مسیر باشد. به طور پیش فرض ، در صورت استفاده از رشته ها ، از گزینه ها استفاده می شود. در غیر این صورت از یک عدد صحیح افزایش یافته استفاده می شود (از 0).

اگر یک تماس تلفنی را تصویب کنید ، یک استدلال دریافت می کند: خود انتخاب. هنگام استفاده از قسمت EntityType ، آرگومان شیء موجودیت برای هر انتخاب خواهد بود یا تهی در یک مکان نگهدارنده استفاده می شود که شما باید از آنها استفاده کنید:

1 2 3
"انتخاب_و" => تابع (؟ عرفانی$وجود، موجودیت) <برگشت $وجود، موجودیت ? $وجود، موجودیت>getId ():'';>,

هنگام تعریف نوع سفارشی ، باید از یاور کلاس Choicelist استفاده کنید:

1 2 3 4 5 6
استفاده کنید تقارنجزءفرمانتخاب کنندهانتخاب کننده; // . $سازنده>اضافه کردن("انتخاب"، نوع انتخاب::کلاس ، ["انتخاب_و" =>انتخاب کننده::ارزش($این, 'uuid'), ]);

منبسط

نوع: پیش فرض بولی: نادرست

اگر روی True تنظیم شود ، دکمه های رادیویی یا کادر انتخاب (بسته به مقدار چندگانه) ارائه می شوند. اگر نادرست باشد ، یک عنصر انتخابی ارائه می شود.

دسته بندی بر اساس

نوع: رشته ، فراخوانی یا Propertypath پیش فرض: NULL

شما می توانید با عبور از یک آرایه چند بعدی به انتخاب ، عناصر A را وارد کنید. بخش گزینه های گروه بندی را در مورد آن مشاهده کنید.

گزینه Group_by روشی جایگزین برای انتخاب گروهی است که انعطاف پذیری کمی به شما می دهد.

مثال زیر را بگیرید:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن("انتشار"، نوع انتخاب::کلاس ، ["انتخاب" => [ 'اکنون' => جدیدزمان قرار('اکنون'), 'فردا' => جدیدزمان قرار('+1 روز'), '1 هفته' => جدیدزمان قرار('+1 هفته'), '1 ماه' => جدیدزمان قرار('+1 ماه'), ], 'دسته بندی بر اساس' => تابع($انتخاب, $کلید, $ارزش) <if ($انتخابجدیدزمان قرار('+3 روز')) <برگشت 'به زودی';> برگشت 'بعد';>, ]);

این تاریخ هایی را که طی 3 روز به "به زودی" و همه چیز دیگر در "بعداً" گروه می شوند ، گروه ها را گروه بندی می کنند.

اگر NULL را برگردانید ، گزینه گروه بندی نمی شود. همچنین می توانید یک رشته "مسیر خاصیت" را که برای دریافت گروه فراخوانده می شود ، عبور دهید. برای جزئیات بیشتر در مورد استفاده از یک مسیر خاصیت ، به انتخاب_label مراجعه کنید.

هنگام تعریف نوع سفارشی ، باید از یاور کلاس Choicelist استفاده کنید:

1 2 3 4 5 6
استفاده کنید تقارنجزءفرمانتخاب کنندهانتخاب کننده; // . $سازنده>اضافه کردن("انتخاب"، نوع انتخاب::کلاس ، ['دسته بندی بر اساس' =>انتخاب کننده::دسته بندی بر اساس($این, 'دسته بندی'), ]);

چندگانه

نوع: پیش فرض بولی: نادرست

اگر درست باشد ، کاربر قادر به انتخاب چندین گزینه (بر خلاف انتخاب فقط یک گزینه) خواهد بود. بسته به مقدار گزینه گسترش یافته ، این یک برچسب یا کادر انتخاب را در صورت صحت و برچسب انتخابی یا دکمه های رادیویی در صورت نادرست ارائه می دهد. مقدار برگشتی یک آرایه خواهد بود.

محل نگهدارنده

نوع: رشته یا بولی

این گزینه تعیین می کند که آیا گزینه "خالی" ویژه (به عنوان مثال "گزینه را انتخاب کنید") در بالای ویجت انتخابی ظاهر می شود. این گزینه فقط در صورتی اعمال می شود که گزینه چندگانه روی False تنظیم شود.

 

  • یک مقدار خالی را با "انتخاب گزینه" به عنوان متن اضافه کنید:

     

1 2 3 4 5 6
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن('ایالت ها'، نوع انتخاب::کلاس ، ["مکان نگهدارنده" => "گزینه را انتخاب کنید", ]);
1 2 3 4 5 6
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن('ایالت ها'، نوع انتخاب::کلاس ، ["مکان نگهدارنده" => دروغ, ]);

اگر گزینه نگهدارنده مکان را UNET بگذارید ، گزینه خالی (بدون متن) به طور خودکار اضافه می شود اگر و فقط اگر گزینه مورد نیاز نادرست باشد:

1 2 3 4 5 6 7
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . // گزینه خالی (بدون متن) اضافه می شود $سازنده>اضافه کردن('ایالت ها'، نوع انتخاب::کلاس ، ['ضروری' => دروغ, ]);

Choices preferreded

نوع: آرایه ، فراخوانی ، رشته یا Propertypath به طور پیش فرض: []

این گزینه به شما امکان می دهد گزینه های خاصی را در بالای لیست خود با جداکننده بصری بین آنها و لیست کامل گزینه ها نمایش دهید. اگر نوعی زبان دارید ، می توانید محبوب ترین آنها را در بالا ذکر کنید ، مانند Bork و Pirate:

1 2 3 4 5 6 7 8 9 10 11 12
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن("زبان"، نوع انتخاب::کلاس ، ["انتخاب" => [ 'انگلیسی' => 'en', "اسپانیایی" => 'es', 'Bork' => 'Muppets', 'دزد دریایی' => 'arr', ], "preferred_choices" => ['Muppets', 'arr'], ]);

این گزینه ها همچنین می تواند یک عملکرد پاسخ به تماس باشد تا انعطاف پذیری بیشتری به شما بدهد. اگر مقادیر شما اشیاء باشد ، این ممکن است به ویژه مفید باشد:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
استفاده کنید تقارنجزءفرمافزونههستهنوعنوع انتخاب; // . $سازنده>اضافه کردن("انتشار"، نوع انتخاب::کلاس ، ["انتخاب" => [ 'اکنون' => جدیدزمان قرار('اکنون'), 'فردا' => جدیدزمان قرار('+1 روز'), '1 هفته' => جدیدزمان قرار('+1 هفته'), '1 ماه' => جدیدزمان قرار('+1 ماه'), ], "preferred_choices" => تابع ($انتخاب, $کلید, $ارزش) <// گزینه ها را ظرف 3 روز ترجیح دهید برگشت $انتخابجدیدزمان قرار('+3 روز');>, ]);

این فقط گزینه های "اکنون" و "فردا" را ترجیح می دهد:

سرانجام ، اگر مقادیر شما اشیاء هستند ، می توانید یک رشته مسیر خاصیت را روی شیء مشخص کنید که درست یا نادرست بازگردد.

گزینه های ارجح فقط هنگام ارائه یک عنصر انتخابی (یعنی کاذب گسترش یافته) معنی دار هستند. گزینه های ارجح و گزینه های عادی توسط مجموعه ای از خطوط نقطه ای به صورت بصری از هم جدا می شوند (یعنی --------------------). این کار را می توان در هنگام ارائه قسمت سفارشی کرد:

اخبار رمز ارزها...
ما را در سایت اخبار رمز ارزها دنبال می کنید

برچسب : نویسنده : منیژه سلیمی بازدید : <-PostHit-> تاريخ : چهارشنبه 25 مرداد 1402 ساعت: 15:50