数据库的用法

一级用户组 minusone 3月前 146

有大佬给给一个数据库操作的具体用法嘛?

数据库的增删改查,比如 getSelect()的用法等等

最新回复 (1)
  • 管理员组 admin 3月前
    0 引用 2

    数据库的增删改查都是用的m2的模型orm,对表实例化模型后,直接调用模型的方法就行。

    以test表为例,假设你已经对这个表建了模型

    1,根据主键id获取一条记录

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $id = 1;
    $testModel = $objectManager->create('Zou\Demo\Model\Test')->load($id);
    print_r($testModel->getData());//打印数据


    2,查询某个表的数据集

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $testCollection = $objectManager->create('Zou\Demo\Model\ResourceModel\Test\Collection');
    //查询某个字段
    $testCollection->addAttributeToSelect('status');
    //过滤where。比如获取status为1的数据
    $testCollection->addAttributeToFilter('status',array('eq'=>1));
    //再foreach输出就行
    foreach ($testCollection as $_test) {
      print_r($_test->getData());//打印数据
    }


    3,得到原始的sql

    echo $testCollection->getSelect();


    4,filter常用的过滤条件


    //等于 Equals: eq
    $testCollection->addAttributeToFilter('status', array('eq' => 1));
     
    //不等于 Not Equals - neq
    $testCollection->addAttributeToFilter('sku', array('neq' => 'test-product'));
     
    //Like - like
    $testCollection->addAttributeToFilter('sku', array('like' => 'UX%'));
     
    //Not Like - nlike
    $testCollection->addAttributeToFilter('sku', array('nlike' => 'err-prod%'));
     
    //In - in
    $testCollection->addAttributeToFilter('id', array('in' => array(1,4,98)));
     
    //Not In - nin
    $testCollection->addAttributeToFilter('id', array('nin' => array(1,4,98)));
     
    //NULL - null
    $testCollection->addAttributeToFilter('description', 'null');
     
    //Not NULL - notnull
    $testCollection->addAttributeToFilter('description', 'notnull');
     
    //大于 Greater Than - gt
    $testCollection->addAttributeToFilter('id', array('gt' => 5));
     
    //小于 Less Than - lt
    $testCollection->addAttributeToFilter('id', array('lt' => 5));
     
    //大于等于 Greater Than or Equals To- gteq
    $testCollection->addAttributeToFilter('id', array('gteq' => 5));
     
    //小于等于 Less Than or Equals To - lteq
    $testCollection->addAttributeToFilter('id', array('lteq' => 5));

    参考:

    https://www.cnblogs.com/zhengyanbin2016/p/5606917.html


    5,删除数据

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $id = 1;
    $testModel = $objectManager->create('Zou\Demo\Model\Test')->load($id);
    $testModel->delete();



    6,更新数据

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $id = 1;
    $testModel = $objectManager->create('Zou\Demo\Model\Test')->load($id);
    $testModel->setStatus(0);
    $testModel->save();


  • 游客
    登录 | 注册 方可回帖
返回
发帖