数据库的用法
数据库的增删改查都是用的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();
admin 更改状态以发布
