Логическое значение в строку


Я создал сетку администратора в качестве компонента пользовательского интерфейса.

У меня есть логический столбец под названием статус в бд.

Здесь я показываю значение столбца.

<column name="status">
        <settings>
            <filter>text</filter>
            <sorting>asc</sorting>
            <label translate="true">Status</label>
        </settings>
    </column>

На данный момент он отображает только "1" или "0".

Чего я хочу добиться, так это отобразить "Да" или "Нет" вместо 1 и 0.

Author: Rufus, 2019-03-06

1 answers

Вам нужно создать массив, чтобы связать значение с меткой : в вашем grid.xml добавить

<column name="status">
    <argument name="data" xsi:type="array">
         <item name="options" xsi:type="object">Vendor\Module\Ui\Component\Listing\Column\Status</item>
         <item name="config" xsi:type="array">
             <item name="sortOrder" xsi:type="number">10</item>
             <item name="filter" xsi:type="string">select</item>
             <item name="label" translate="true" xsi:type="string">Status</item>
             <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item>
             <item name="dataType" xsi:type="string">select</item>
             <item name="editor" xsi:type="string">select</item>
         </item>
    </argument>
</column>

Затем Теперь Создайте Статус.php в

app/code/Vendor/Module/Ui/Component/Listing/Column/Status.php

 <?php

 namespace Vendor\Module\Ui\Component\Listing\Column;

 class Status implements \Magento\Framework\Option\ArrayInterface
 {
     /**
      * Options getter
      *
      * @return array
      */
     public function toOptionArray()
     {
         return [['value' => 1, 'label' => __('Yes')], ['value' => 0, 'label' => __('No')]];
     }
 }
 0
Author: Vinz, 2019-03-06 15:03:13