gpt4 book ai didi

Magento模型删除功能

转载 作者:行者123 更新时间:2023-12-04 05:14:29 24 4
gpt4 key购买 nike

我有扩展 的模型类Mage_Core_Model_Abstract .我有一个扩展 的资源Mage_Core_Model_Mysql4_Abstract .现在我使用以下代码从 Controller 中删除:

public function deleteAction()
{
$params = $this->getRequest()->getParams();
$blogpost = $this->_createModel();
$blogpost->setId($params['id']);
$blogpost->delete();
echo 'Post with id ' . $params['id'] . ' is deleted';
}

问题是当我提供 时没有显示错误不存在 身份证。怎么办?我是否必须加载该 ID 并检查它是否存在?或者我应该使用 尝试/捕捉 .我使用了 try 和 catch 但没有给出任何结果。

最佳答案

当然它不会抛出异常,DELETE语句最终没有错误地执行,它只有受影响的行数为 0。

不幸的是,行数在这里丢失( Mage_Core_Model_Resource_Db_Abstract ):

/**
* Delete the object
*
* @param Varien_Object $object
* @return Mage_Core_Model_Resource_Db_Abstract
*/
public function delete(Mage_Core_Model_Abstract $object)
{
$this->_beforeDelete($object);
$this->_getWriteAdapter()->delete(
$this->getMainTable(),
$this->_getWriteAdapter()->quoteInto($this->getIdFieldName() . '=?', $object->getId())
);
$this->_afterDelete($object);
return $this;
}

因为 _getWriteAdapter()->delete()的返回值未在任何地方使用

看起来您确实必须在删除模型之前加载模型,或者至少通过资源集合检查它的存在。

关于Magento模型删除功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com