Сетка администратора Magento 2 с двумя объединениями таблиц по умолчанию - PullRequest
0 голосов
/ 22 февраля 2019

Я новичок в magento 2, хотел бы объединить 2 существующие таблицы с небольшим количеством вычислений и показать их в сетке администратора.

Я сделал следующее через некоторое руководство с некоторыми изменениями, носетка не рендерится, это правильный способ сделать что-то подобное или есть какой-то более простой способ сделать это.

То, что я в основном хочу сделать, это получить общую сумму запаса, вычесть отложенный ордер и получитьреальное количество акций после вычета отложенных ордеров.

Controller / Adminhtml / Index / Index.php

<?php

namespace Test\StockChecker\Controller\Adminhtml\Index;

class Index extends \Magento\Backend\App\Action
{
    protected $resultPageFactory = false;

    public function __construct(
        \Magento\Backend\App\Action\Context $context,
        \Magento\Framework\View\Result\PageFactory $resultPageFactory
    )
    {
        parent::__construct($context);
        $this->resultPageFactory = $resultPageFactory;
    }

    public function execute()
    {
        try{
            $resultPage = $this->resultPageFactory->create();
            $resultPage->getConfig()->getTitle()->prepend((__('Stock Status')));    
        }
        catch(Exception $e){
            $this->messageManager->addError($e);    
        }

        return $resultPage;
    }


}

etc / di.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
        <arguments>
            <argument name="collections" xsi:type="array">
                <item name="karl_stockchecker_listing_data_source" xsi:type="string">Test\StockChecker\Model\ResourceModel\Index\Collection</item>
            </argument>
        </arguments>
    </type>
    <virtualType name="Test\StockChecker\Model\ResourceModel\Index\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
        <arguments>
            <argument name="mainTable" xsi:type="string">product_entity</argument>
            <argument name="resourceModel" xsi:type="string">Magento\Catelog\Model\ResourceModel\Product</argument>
        </arguments>
    </virtualType>
</config>

Model / ResourceModel/Index/Collection.php

class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
    protected $_idFieldName = 'post_id';
    protected $_eventPrefix = 'test_stockchecker_index_collection';
    protected $_eventObject = 'index_collection';

    /**
     * Define resource model
     *
     * @return void
     */
    protected function _construct()
    {
        $this->_init('Magento\Catelog\Model\ResourceModel\Product', 'Magento\Order\Model\Order');
    }

}

view / adminhtml / layout / test_stockchecker_index_index.php

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
    <update handle="styles"/>
    <body>
        <referenceContainer name="content">
            <uiComponent name="test_stockchecker_index_listing"/>
        </referenceContainer>
    </body>
</page>

view / admin_html / ui_component / test_stockchecker_index_2020 *.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...