無料の magento 拡張機能 (WebForms) を使用してカスタム アンケートを作成しているので、インストールして変更しました。拡張機能のモデルは EAV を使用しません。関連するテーブルがあります。
| webforms |
| webforms_fields |
| webforms_fieldsets |
| webforms_results |
| webforms_results_values |
3 つのカスタム属性を追加しました: rating (int) を webforms_results_values に、is_customer_survey (tinyint) を webforms に、view_on_frontend (tinyint) を webforms_results に追加しました。モジュールのモデルは、Webforms (マッピング webforms)、Fields (マッピング webforms_fields)、Fieldsets (マッピング webforms_fieldsets)、Results (マッピング webforms_results) です。現在、webforms_results_values はモデルにマップされていません。カスタム属性を簡単に操作する必要があるため、次の変更を行いました。
// WebForms/Model に Results というディレクトリを追加し、その中に Values.php (app/code/local/Custom/WebForms/Model/Results/Values.php class Custom_WebForms_Model_Results_Values extends Mage_Core_Model_Abstract { public function _construct() { 親: :_construct(); $this->_init('webforms/results_values'); } }
//added two files in app/code/local/Custom/WebForms/Model/Mysql4:
//app/code/local/Custom/WebForms/Model/Mysql4/Results/Values.php
class Custom_WebForms_Model_Mysql4_Results_Values
extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct(){
$this->_init('webforms/results_values','id');
}
}
//app/code/local/Custom/WebForms/Model/Mysql4/Results/Values/Collection.php
class Custom_WebForms_Model_Mysql4_Results_Values_Collection
extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct(){
parent::_construct();
$this->_init('webforms/results_values');
}
}
次に、etc/config.xml のセクションを変更しました。
<models>
<webforms>
<class>Custom_WebForms_Model</class>
<resourceModel>webforms_mysql4</resourceModel>
</webforms>
<results>
<class>Custom_WebForms_Model</class>
<resourceModel>webforms_mysql4</resourceModel>
</results>
<fields>
<class>Custom_WebForms_Model</class>
<resourceModel>webforms_mysql4</resourceModel>
</fields>
<fieldsets>
<class>Custom_WebForms_Model</class>
<resourceModel>webforms_mysql4</resourceModel>
</fieldsets>
<results_values>
<class>Custom_WebForms_Model</class>
<resourceModel>webforms_mysql4</resourceModel>
</results_values>
<webforms_mysql4>
<class>Custom_WebForms_Model_Mysql4</class>
<entities>
<webforms>
<table>webforms</table>
</webforms>
<fields>
<table>webforms_fields</table>
</fields>
<fieldsets>
<table>webforms_fieldsets</table>
</fieldsets>
<results>
<table>webforms_results</table>
</results>
<results_values>
<table>webforms_results_values</table>
</results_values>
</entities>
</webforms_mysql4>
</models>
これらの変更により、save() を使用して 'webforms/results_values' モデルの評価を書き込んで保存できるようになりました。Mage::getModel('webforms/results_values') を使用してそのモデルのコレクションを取得すると、痕跡はありません。新しい属性 (以前の属性はすべて存在しますが、新しい属性は存在しません)。それはCollection.phpに関連するものですか、それとも何か他のものですか? これを解決するための助けはありますか?
ありがとう!ルーク