Magento:从前端以编程方式更新和删除,不工作?
我正在尝试从前端更新产品,但它不允许我更新产品的所有字段 以下是用于更新的索引控制器代码:Magento:从前端以编程方式更新和删除,不工作?,magento,magento-1.6,Magento,Magento 1.6,我正在尝试从前端更新产品,但它不允许我更新产品的所有字段 以下是用于更新的索引控制器代码: public function updateVproductAction(){ if($addvp = $this->getRequest()->getPost()) { /*********************** Product Update ***************************/ /** * Get the resource
public function updateVproductAction(){
if($addvp = $this->getRequest()->getPost())
{
/*********************** Product Update ***************************/
/**
* Get the resource model
*/
$resource = Mage::getSingleton('core/resource');
/**
* Retrieve the write connection
*/
$writeConnection = $resource->getConnection('core_write');
/**
* Retrieve our table name
*/
$table = $resource->getTableName('catalog/product');
/**
* Set the product ID
*/
$productId = $addvp['product']['id'];
/**
* Set the new SKU
* It is assumed that you are hard coding the new SKU in
* If the input is not dynamic, consider using the
* Varien_Db_Select object to insert data
*/
//$newSku = 'new-sku';
$sku = $addvp['product']['sku'];
$name = $addvp['product']['name'];
$description = $addvp['product']['description'];
$short_description = $addvp['product']['short_description'];
$weight = $addvp['product']['weight'];
$news_from_date = $addvp['product']['news_from_date'];
$news_to_date = $addvp['product']['news_to_date'];
$status = $addvp['product']['status'];
$price = $addvp['product']['price'];
$special_price = $addvp['product']['special_price'];
$tax_class_id = $addvp['product']['tax_class_id'];
$meta_title = $addvp['product']['meta_title'];
$meta_keyword = $addvp['product']['meta_keyword'];
$meta_description = $addvp['product']['meta_description'];
$stock_data = array(
'is_in_stock' => 1,
'qty' => $addvp['product']['stock_data']['qty']
);
$query = "UPDATE {$table} SET sku = '{$sku}', name = '{$name}', description = '{$description}', short_description = '{$short_description}', weight = '{$weight}', news_from_date = '{$news_from_date}', news_to_date = '{$news_to_date}', status = '{$status}', price = '{$price}', special_price = '{$special_price}', tax_class_id = '{$tax_class_id}', meta_title = '{$meta_title}', meta_keyword = '{$meta_keyword}', meta_description = '{$meta_description}', stock_data = '{$stock_data}' WHERE entity_id = "
.(int) $productId;
try
{
/**
* Execute the query
*/
$writeConnection->query($query);
echo "successfully updated product with ID: ". $productId ."<br />";
}
catch (Exception $e)
{
echo "Could not update product with ID: ". $productId ."<br />";
}
}
}
公共函数updateVproductAction(){
如果($addvp=$this->getRequest()->getPost())
{
/***********************产品更新***************************/
/**
*获取资源模型
*/
$resource=Mage::getSingleton('core/resource');
/**
*检索写连接
*/
$writeConnection=$resource->getConnection('core_write');
/**
*检索我们的表名
*/
$table=$resource->getTableName('catalog/product');
/**
*设置产品ID
*/
$productId=$addvp['product']['id'];
/**
*设置新的SKU
*假设您正在硬编码中的新SKU
*如果输入不是动态的,请考虑使用
*Varien_Db_选择要插入数据的对象
*/
//$newSku=‘新sku’;
$sku=$addvp['product']['sku'];
$name=$addvp['product']['name'];
$description=$addvp['product']['description'];
$short_description=$addvp['product']['short_description'];
$weight=$addvp['product']['weight'];
$news_from_date=$addvp['product']['news_from_date'];
$news_to_date=$addvp['product']['news_to_date'];
$status=$addvp['product']['status'];
$price=$addvp['product']['price'];
$special_price=$addvp['product']['special_price'];
$tax_class_id=$addvp['product']['tax_class_id'];
$meta_title=$addvp['product']['meta_title'];
$meta_关键字=$addvp['product']['meta_关键字'];
$meta_description=$addvp['product']['meta_description'];
$stock\u data=数组(
“是否有库存”=>1,
'qty'=>$addvp['product']['stock_data']['qty']
);
$query=“UPDATE{$table}SET sku='{$sku}',name='{$name}',description='{$description}',short_description='{$short_description}',weight='{$weight}',news_from_date='{$news_from_date}',news_to_date='{$news_to_to_date}',status='{$status}',price='{$price}',price='{$price},special$price}',tax(id},tax)id={$tax)id}“,meta_title='{$meta_title}',meta_关键字='{$meta_关键字}',meta_描述='{$meta_描述}',股票数据='{$stock_数据}',其中实体id=”
(int)$productId;
尝试
{
/**
*执行查询
*/
$writeConnection->query($query);
echo“已成功更新ID为“.$productId.”的产品。
;
}
捕获(例外$e)
{
echo“无法更新ID为“.$productId.”的产品。
;
}
}
}
有谁能帮我纠正我的错误吗
要删除产品,我只需从Helper调用此函数:
public function vDeleteproduct($vprod){
//print_r($vprod); exit;
try
{
$product = Mage::getSingleton('catalog/product')->load($vprod);
Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product));
$product->delete();
//$product = Mage::getModel('catalog/product')->load($vprod)->delete();
echo "successfully deleted product with ID: ". $vprod ."<br />";
}
catch (Exception $e)
{
echo "Could not delete product with ID: ". $vprod ."<br />";
}
return;
}
公共功能vDeleteproduct($vprod){
//打印($vprod);退出;
尝试
{
$product=Mage::getSingleton('catalog/product')->load($vprod);
Mage::dispatchEvent('catalog\u controller\u product\u delete',数组('product'=>$product));
$product->delete();
//$product=Mage::getModel('catalog/product')->load($vprod)->delete();
echo“已成功删除ID为“.vprod.”的产品。
;
}
捕获(例外$e)
{
echo“无法删除ID为“.vprod.”的产品。
;
}
返回;
}
它也不起作用:(
Plz帮助。用于删除产品:
public function vDeleteproduct($vprod){
//print_r($vprod); exit;
try
{
$product = Mage::getSingleton('catalog/product')->load($vprod);
Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product));
$product->delete();
//$product = Mage::getModel('catalog/product')->load($vprod)->delete();
echo "successfully deleted product with ID: ". $vprod ."<br />";
}
catch (Exception $e)
{
echo "Could not delete product with ID: ". $vprod ."<br />";
}
return;
}
我已经找到了这个问题的答案,我只需要从非管理区域(即前端)访问delete。它为我带来了魔力
上面的链接帮助我找到了解决方案。删除产品:
public function vDeleteproduct($vprod){
//print_r($vprod); exit;
try
{
$product = Mage::getSingleton('catalog/product')->load($vprod);
Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product));
$product->delete();
//$product = Mage::getModel('catalog/product')->load($vprod)->delete();
echo "successfully deleted product with ID: ". $vprod ."<br />";
}
catch (Exception $e)
{
echo "Could not delete product with ID: ". $vprod ."<br />";
}
return;
}
我已经找到了这个问题的答案,我只需要从非管理区域(即前端)访问delete。它为我带来了魔力
上面的链接帮助我找到了解决方案