当前位置: 技术文章>> 如何在不使用Magento 2中的模型文件的情况下创建更新查询

文章标题:如何在不使用Magento 2中的模型文件的情况下创建更新查询
  • 文章分类: Magento
  • 29645 阅读
系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》

本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。


有时开发人员想要执行数据库操作,例如存储某些数据、修改数据或在编码过程中删除数据。但是Magento中有一定的编码标准。根据这些标准,开发人员必须创建一个模型文件才能执行任何SQL查询。对于电子商务商店来说,这是一个近乎完美的平台中的一个忙碌的困境。

但是,如果可以在不使用模型文件的情况下执行这些SQL查询,该怎么办?相信我,这是可能的。今天的博客也是关于同样的。在这里,我将向您展示如何执行更新查询。在下面的代码中显示了更新,它显示了如何在不使用模态文件的情况下执行任意次数的更新。那么,让我们开始吧...??

最初,为了执行它,您需要在我的扩展文件夹中创建一个“Index.php”文件,该文件位于下面定义的路径中。

app\code\Vendor\Extension\Controller\Deletequery\

创建文件夹后,您需要应用以下代码才能执行更新操作。

<?php
namespace Vendor\Extension\Controller\Updatequery; 
use Magento\Framework\App\ResourceConnection; 
use Magento\Framework\App\Action\Context; 
class Index extends \Magento\Framework\App\Action\Action {
    const QUOTE_TABLE = '[TABLE_NAME]';
    private $resourceConnection;
   
    public function __construct( Context $context, ResourceConnection $resourceConnection) { $this->resourceConnection = $resourceConnection;
 
        return parent::__construct($context);
    }
 
    public function execute()
    {
        $connection  = $this->resourceConnection->getConnection();
 
        $data = ["field1"=>3,"field2"=>15]; // you can use as per your requirement
 
        $id = 1;
 
        $where = ['entity_id = ?' => (int)$id];
 
        $tableName = $connection->getTableName(self::QUOTE_TABLE);
 
        $updatedRows=$connection->update($tableName, $data, $where);
 
        echo "Updated Rows : ".$updatedRows;
    }
}

就是这样。借助此代码,您可以执行多个 SQL 更新操作,而无需创建模型文件。不创建标准的Magento 2模型文件在您的开发阶段会非常有用。


推荐文章