Không thể lưu danh mục với hơn 1000 sản phẩm


7

Đây là một sự cố đã biết do PHP 5.3.9 gây ra và max_input_varstheo mặc định, nó được đặt thành 1000.

Giải pháp 2 đề xuất ở đây nó là tốt nhất theo ý kiến của tôi, nhưng không hoạt động: vì một lý do lạ nó hạn chế chủng loại các sản phẩm 527.

Vì lý do đó, tôi đang đăng câu hỏi này với câu trả lời đúng


Có thể giới hạn không phải là 527. Có thể bạn đạt đếnmax_post_size
Marius

Câu trả lời:


11

Như được mô tả trong câu hỏi vấn đề này đã được giải quyết ở đây nhưng câu trả lời không hoạt động tốt với tôi.

Tôi đang thêm vào đây một giải pháp làm việc hoàn chỉnh ( method 2).

đây là mã hoạt động tốt với tôi:

            $cat_products_split = explode('&', $data['category_products']);
            foreach ($cat_products_split as $row) {
                $arr = explode('=', $row);
                if (count($arr) == 2) {
                    $products[$arr[0]] = $arr[1];
                }
            }

- ĐÂY CÁC BƯỚC ĐỂ CỐ ĐỊNH

1. Tạo ra một mô-đun mới

hãy tạo một mô-đun CategoryFixtại địa phương.

Đây là config.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <MYNAMESPACE_CategoryFix>
            <version>0.1.0</version>
        </MYNAMESPACE_CategoryFix>
    </modules>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <!--FOR THE USE OF OUR CONTROLLER BEFORE THE CORE ONES -->
                        <categoryfix before="Mage_Adminhtml">MYNAMESPACE_CategoryFix_Adminhtml</categoryfix>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>

2. Ghi đè bộ điều khiển danh mục ( saveAction())

Tập tin điều khiển: /MYNAMESPACE/CategoryFix/Adminhtml/Catalog/CategoryController

<?php

require_once 'Mage/Adminhtml/controllers/Catalog/CategoryController.php';
class MYNAMESPACE_CategoryFix_Adminhtml_Catalog_CategoryController extends Mage_Adminhtml_Catalog_CategoryController
{  
    /**
     * Category save
     */
    public function saveAction()
    {
     // 1. COPY HERE THE CODE FROM THE ORIGINAL SAVEACTION() METHOD
     // 2. COMMENT THIS LINE: `parse_str($data['category_products'], $products);`
     // USE THE CODE REPORTED ABOVE  
    }
 }

/MYNAMESPACE/CategoryFix/controllers/Adminhtml/Catalog/CategoryController.php làm việc cho tôi
Alan

3

Tôi đã thêm nó vào tệp .htaccess trong Magento root:

<IfModule mod_php5.c>
    php_value max_input_vars 100000
</IfModule>

Sau khi thiết lập, Magento cho phép tôi có hơn 1001 sản phẩm trong một danh mục.


bảo trọng giải pháp của bạn làm cho máy chủ của bạn dễ bị tấn công DDoS hơn
Fra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.