2012-02-19 40 views
8

Xin chào, tôi đang cố ghi đè Mage_Customer_AccountController để tôi có thể mở rộng phương thức createPostAction. Đối với cuộc sống của tôi tôi dường như không thể làm điều này, nó hoặc ném một trang 404, cho thấy rằng nó không phải là con đường đúng cho tập tin hoặc nó mặc định để orignal.Magento: Ghi đè bộ điều khiển tài khoản khách hàng

<rewrite> 
     <company_modulename_account> 
      <from><![CDATA[#^/customer/account/#]]></from> 
      <to>/modulename/account</to> 
     </company_modulename_account> 
</rewrite> 

điều khiển của tôi nằm ở đây local/công ty/môđun/controllers/AccountController.php

+1

bạn có hoàn toàn phải ghi đè không? Thực hành tốt hơn nhiều là sử dụng Trình theo dõi sự kiện để lắng nghe sự kiện customer_save_after và thực hiện các bước bắt buộc của bạn theo cách được tách riêng, nâng cấp an toàn –

Trả lời

24

Thay vào đó, bạn có thể thử như:

... 
<frontend> 
     <routers> 
      <customer> 
       <args> 
        <modules> 
         <company_modulename before="Mage_Customer">Company_Modulename</company_modulename> 
        </modules> 
       </args> 
      </customer> 
     </routers> 
    </frontend> 
... 

Và tạo ra một lớp điều khiển:
app/mã/[codePool] /Company/Modulename/controllers/AccountController.php
với mã sau:

require_once 'Mage/Customer/controllers/AccountController.php'; 
class Company_Modulename_AccountController extends Mage_Customer_AccountController 
{ 
    public function createPostAction(){ 
     die('Overriden'); 
    } 
} 

Dưới đây là thông tin thêm về điều khiển trọng:
https://stackoverflow.com/a/7117076/887385

Good Luck !!

+0

Hoàn hảo, cảm ơn vì điều đó! – jamessy

+3

Với Magento 1.7 chỉ có tác phẩm này cho tôi: Company_Modulename

+0

@KevinHorst +1 cho nhận xét. Vào ngày 1.6.X C.E. điều tra vấn đề và sẽ cập nhật vấn đề này. – Haijerome

Các vấn đề liên quan