您可以使用 Magento 2 创建自定义插入查询,以通过 ResourceConnection 类在数据库表中添加/创建新记录。
使用插入查询,您可以使用直接 SQL 查询insert()将新记录添加到表中,而无需进行模型操作。
让我们在sales_order_status表中添加一条新记录,其中仅包含状态和标签两列
<?php
namespace Path\To\Class;
use Magento\Framework\App\ResourceConnection;
class addOrderStatus {
const ORDER_STATUS_TABLE = 'sales_order_status';
const STATUS_FIELD = 'status';
const STATUS_LABEL_FIELD = 'label';
/**
* @var ResourceConnection
*/
private $resourceConnection;
public function __construct(
ResourceConnection $resourceConnection
) {
$this->resourceConnection = $resourceConnection;
}
/**
* insert Sql Query
*/
public function insertStatus()
{
$connection = $this->resourceConnection->getConnection();
$tableName = $connection->getTableName(self::ORDER_STATUS_TABLE);
$data = [
self::STATUS_FIELD => 'pending_hold',
self::STATUS_LABEL_FIELD => __("Pending Onhold"),
];
$connection->insert(self::ORDER_STATUS_TABLE, $data);
}
}
第一个参数是表名。
第二个参数是表的列数组。
输出是添加到sales_order_status表的新行。您可以添加任何编号。使用 insert() 查询在任何表中的记录。