系统学习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模型文件在您的开发阶段会非常有用。