Magento modelde tablo adı andprefix geçersiz kılmak nasıl?

1 Cevap php

Ben Magento başka bir parti sistemi ile entegre etmek için varolan bir veritabanı tablo / veri yazma okuma yapmak gerekir. Tablo adını olamaz. Önek ekler magento aşağıdaki gibi ben modeli config tablo etiketi bunu belirtin. Şekilde önek olarak geçersiz kılmak için bir yolu var mı?

   <models>
        <arithmetic>
            <class>Mcmr_Arithmetic_Model</class>
            <resourceModel>arithmetic_mysql4</resourceModel>
        </arithmetic>
        <arithmetic_mysql4>
            <class>Mcmr_Arithmetic_Model_Mysql4</class>
            <entities>
                <arithmetic>
                    <table>newslettersignups</table>
                </arithmetic>
            </entities>
        </arithmetic_mysql4>
    </models>

1 Cevap

Bunu yapmak için kolay bir yolu yoktur.

En iyi çözüm yapılandırma dosyasını genişletmek olacaktır:

<models>
    <arithmetic>
        <class>Mcmr_Arithmetic_Model</class>
        <resourceModel>arithmetic_mysql4</resourceModel>
    </arithmetic>
    <arithmetic_mysql4>
        <class>Mcmr_Arithmetic_Model_Mysql4</class>
        <entities>
            <arithmetic>
                <ignore_prefix>1</ignore_prefix>
                <table>newslettersignups</table>
            </arithmetic>
        </entities>
    </arithmetic_mysql4>
</models>

O zaman varlık için ek yapılandırma niteliği "ignore_prefix" göz önünde olmak için Mage_Core_Model_Resource sınıfının getTableName yöntemini geçersiz olabilir.

if ($mappedTableName) {
    $tableName = $mappedTableName;
} else {
    if($entityConfig->ignore_prefix)
        $tablePrefix = '';
    else
        $tablePrefix = (string)Mage::getConfig()->getTablePrefix();
    $tableName = $tablePrefix . $tableName;
}