Tôi đang nhận được tất cả các loại trong System.xml
việc sử dụng lớp
Vender\Module\Model\Config\Source\Category
<?php
namespace Vender\Module\Model\Config\Source;
use Magento\Framework\Data\OptionSourceInterface;
class Category implements OptionSourceInterface{
protected $_categoryFactory;
protected $_categoryCollectionFactory;
public function __construct(
\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $categoryCollectionFactory,
\Magento\Catalog\Model\CategoryFactory $categoryFactory
) {
$this->_categoryCollectionFactory = $categoryCollectionFactory;
$this->_categoryFactory = $categoryFactory;
}
/**
* Get category collection
*
* @param bool $isActive
* @param bool|int $level
* @param bool|string $sortBy
* @param bool|int $pageSize
* @return \Magento\Catalog\Model\ResourceModel\Category\Collection or array
*/
public function getAllCategoryCollection($isActive = true, $level = false, $sortBy = false, $pageSize = false)
{
$collection = $this->_categoryCollectionFactory->create();
$collection->addAttributeToSelect('*');
// select only active categories
if ($isActive) {
$collection->addIsActiveFilter();
}
// select categories of certain level
if ($level) {
$collection->addLevelFilter($level);
}
// sort categories by some value
if ($sortBy) {
$collection->addOrderField($sortBy);
}
// select certain number of categories
if ($pageSize) {
$collection->setPageSize($pageSize);
}
return $collection;
}
public function toOptionArray(){
$arr = $this->_toCheckArray();
$ret = [];
foreach ($arr as $key => $value){
$ret[] = [
'value' => $key,
'label' => $value
];
}
return $ret;
}
private function _toCheckArray(){
$categories = $this->getAllCategoryCollection(true, false, false, false);
$catagoryList = array();
foreach ($categories as $category){
$catagoryList[$category->getEntityId()] = __($this->_getCategoryParentName($category->getPath()) . $category->getName());
}
return $catagoryList;
}
private function _getCategoryParentName($path = ''){
$parentName = '';
$rootCats = array(1,2);
$catTree = explode("/", $path);
array_pop($catTree);
if($catTree && (count($catTree) > count($rootCats))){
foreach ($catTree as $catId){
if(!in_array($catId, $rootCats)){
$category = $this->_categoryFactory->create()->load($catId);
$categoryName = $category->getName();
$parentName .= $categoryName . ' -> ';
}
}
}
return $parentName;
}
}
Tôi nhận được mẫu lớp này Magento 2 - Danh sách danh mục cho phần cấu hình hệ thống magento tùy chỉnh
Bây giờ nó hoạt động hoàn hảo với tôi và đầu ra của nó giống như
Nhưng khi tôi gửi mô-đun của mình cho Magento QA, họ gửi cho tôi Lỗi
Bây giờ tôi có thể giải quyết vấn đề này như thế nào? để xác định vấn đề
Lưu ý: Tôi đã gửi Phần mở rộng này trước đây bằng cách thay đổi Tên của Lớp Tôi nghĩ rằng đó sẽ là vấn đề vì tên Lớp hoặc tên Phương thức Tôi đã thay đổi tất cả tên phương thức và tên lớp nhưng một lần nữa chúng lại gửi cho tôi cùng một vấn đề.