Tôi muốn tạo cấu hình quản trị với một bảng để lấy dữ liệu và lưu trong cấu hình để tôi theo liên kết này .
Nhưng tôi cũng muốn tạo các hàng tùy chỉnh trong bảng đó theo chương trình và cũng không có cột hành động cuối cùng và nút thêm. Vui lòng tham khảo hình ảnh
Tôi không thể tìm thấy bất kỳ giải pháp nào trên web liên quan đến cùng một tập tin
\ Magento \ Config \ Block \ System \ Config \ Form \ Field \ FieldArray \ AbstractFieldArraymà chúng tôi mở rộng đã đưa ra bất kỳ manh mối nào.
Có thể dễ dàng thực hiện điều này thông qua jquery nhưng muốn thực hiện giải pháp tiêu chuẩn.
Mã số:
<?php
namespace Abc\Paymentmethod\Block\Adminhtml\System\Config\Form\Field;
class Feetable extends \Magento\Config\Block\System\Config\Form\Field\FieldArray\AbstractFieldArray
{
/**
* @var \Magento\Framework\Data\Form\Element\Factory
*/
protected $_elementFactory;
/**
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Framework\Data\Form\Element\Factory $elementFactory
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Data\Form\Element\Factory $elementFactory,
array $data = []
)
{
$this->_elementFactory = $elementFactory;
parent::__construct($context,$data);
}
protected function _construct(){
$this->addColumn('noi', ['label' => __('NOI'),'readonly'=>'readonly']);
$this->addColumn('fixed', ['label' => __('Fixed')]);
$this->addColumn('percent', ['label' => __('Percent')]);
$this->_addAfter = false;
$this->_addButtonLabel = __('Add More');
parent::_construct();
}
protected function _prepareArrayRow(\Magento\Framework\DataObject $row) {
$options = [1,2,3];
$row->setData('option_extra_attrs', $options);
}
}
systemDB
<field id="abc_fee_table" translate="label comment tooltip" sortOrder="17.4" showInDefault="1" showInWebsite="1" showInStore="0">
<label>Abc Fee by Number of Installments(NOI)</label>
<frontend_model>Abc\Paymentmethod\Block\Adminhtml\System\Config\Form\Field\Feetable</frontend_model>
<backend_model>Magento\Config\Model\Config\Backend\Serialized\ArraySerialized</backend_model>
</field>
@Divyesh không nó sẽ không. Vui lòng tham khảo hình ảnh để hiểu yêu cầu của tôi
—
Ashwani Shukla
Bạn có thể chia sẻ mã
—
Chirag Patel
Tôi đang tìm kiếm điều tương tự, nhưng nhận ra rằng một cái bàn như vậy là không thực sự cần thiết. Mỗi bảng tra cứu 2d có thể được chuyển đổi trong bảng 1d. Nếu bạn có một bảng excel, đây là hướng dẫn cách chuyển đổi nó: palettepage.com/index.php/tip/ mẹo . Có thể không phải là giải pháp bạn đang tìm kiếm, nhưng sẽ giúp bạn tiết kiệm rất nhiều công việc;)
—
Mo3bius
Dưới đây là một so sánh chi tiết hơn về cả hai biểu diễn dữ liệu: eagereyes.org/basics/s Lansheet-thinking-vs-database-thinking . Magento dựa trên các bảng cơ sở dữ liệu nên có lẽ tốt nhất là thể hiện dữ liệu trong phần phụ trợ theo cách như vậy.
—
Mo3bius
@MartinE Sau khi không nhận được câu trả lời, tôi đã thực hiện thông qua jQuery. Nếu bạn muốn tôi có thể chia sẻ mã với bạn.
—
Ashwani Shukla