我知道如何纠正这个元素,因为当我删除一个产品时,这是表中的所有行都被删除在选项表中。 我测试的只有一个值为262,但我可以有一些。
如果您需要更多信息。告诉我。
谢谢
我的产品目录中的类删除一个或一些产品。 最后,班级称之为钩子。
这门课很好用。 看看这个:$ OSCOM_Hooks->电话('产品',' DeleteAll');这个元素允许在其他目录中使用它来删除其他表中的products_id(如特价,选项,收藏夹....)
产品类删除产品(一些产品)。
class DeleteAll extends \ClicShopping\OM\PagesActionsAbstract {
protected $app;
protected $selected;
protected $cPath;
public function __construct(){
$this->app = Registry::get('Products');
$this->selected = $_POST['selected'];
$this->cPath = HTML::sanitize($_GET['cPath']);
}
public function execute() {
$OSCOM_ProductsAdmin = Registry::get('ProductsAdmin');
$OSCOM_Hooks = Registry::get('Hooks');
if (!is_null($this->selected)) {
foreach ($this->selected as $items) {
if (isset($items)) {
$Qcheck = $this->app->db->prepare('select count(*)
from :table_products_to_categories
where products_id = :products_id
');
$Qcheck->bindInt(':products_id', (int)$items);
$Qcheck->execute();
if ($Qcheck->rowCount() > 0) {
$OSCOM_ProductsAdmin->removeProduct($items);
$OSCOM_Hooks->call('Products','DeleteAll');
}
}
}
}
$this->app->redirect('Products&cPath=' . $this->cPath);
}
}
选项类,其中有一个产品ID表
当我选择一个或一些要删除的产品时,这个类给我一个问题。该表的行全部删除。
结果var_dump($item)
/.../Save.php:58:null ==> correct
/.../DeleteAll.php:35:string '262' (length=3)
值为262并且它是正确的但是当执行类(下面)时,表中的所有行都将被删除。 我不明白,我只有一个值262 =项目,但表格中的所有行都被删除了。
class DeleteAll implements \OM\Modules\HooksInterface {
protected $app;
protected $selected;
public function __construct() {
if (!Registry::exists('ProductsAttributesNew')) {
Registry::set('ProductsAttributesNew', new ProductsAttributesNewApp());
}
$this->app = Registry::get('ProductsAttributesNew');
$this->selected = $_POST['selected'];
}
public function execute() {
$this->app = Registry::get('ProductsAttributesNew');
if (isset($this->selected)) {
foreach ($this->selected as $items) {
if (!is_null($items) && is_numeric($items)) {
var_dump($items);
$this->app->db->delete('test_products_option', ['products_id' => (int)$items]);
$this->app->db->delete('test_products_option_value', ['products_id' => (int)$items]);
}
}
}
}
}