এর সাহায্যে Matthéo Geoffray
, আমি কাস্টম বৈশিষ্ট্যের জন্য ফ্রন্টএন্ড বৈধতা প্রয়োগ করতে এটি করেছি।
[
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'XXXX',
'input' => 'text',
'frontend_class' => 'validate-greater-than-zero',
'source' => '',
'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
'visible' => true,
'required' => true,
'user_defined' => false,
'default' => 0,
'searchable' => false,
'filterable' => true,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false
]
এটি ইনস্টল স্ক্রিপ্টে কাস্টম বৈশিষ্ট্য।
আমি di.xML এ প্লাগইন যুক্ত করেছি
<type name="Magento\Catalog\Ui\DataProvider\CatalogEavValidationRules">
<plugin name="namespace_custom_validation_for_product_attribute" type="Namespace\Module\Model\Plugin\Product\ValidationRules"/>
</type>
এখানে প্লাগইন কোড রয়েছে।
<?php
namespace Namespace\Module\Model\Plugin\Product;
use Closure;
class ValidationRules
{
/**
* @param \Magento\Catalog\Ui\DataProvider\CatalogEavValidationRules $rulesObject
* @param callable $proceed
* @param \Magento\Catalog\Api\Data\ProductAttributeInterface $attribute,
* @param array $data
* @return array
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundBuild(
\Magento\Catalog\Ui\DataProvider\CatalogEavValidationRules $rulesObject,
Closure $proceed,
\Magento\Catalog\Api\Data\ProductAttributeInterface $attribute,
array $data
){
$rules = $proceed($attribute,$data);
if($attribute->getAttributeCode() == 'xyz'){ //custom filter
$validationClasses = explode(' ', $attribute->getFrontendClass());
foreach ($validationClasses as $class) {
$rules[$class] = true;
}
}
return $rules;
}
}
মূলতঃ \Magento\Catalog\Ui\DataProvider\CatalogEavValidationRules
, পদ্ধতিটি mapRules
সীমিত সংখ্যক বৈধতা বিধিগুলির বিরুদ্ধে কেবল সীমান্ত শ্রেণীর সাথে মেলে। আরও বৈধতা নিয়ম প্রয়োগ করতে আমাদের প্লাগইন ব্যবহার করে বিধি যুক্ত করতে হবে।
সার্ভার পার্শ্ব বৈধতা জন্য, দয়া করে Matthéo Geoffray
উত্তর দেখুন।