Magento1.7.0用のカスタムモジュールを作成しています。MySQLにデータを挿入しようとしているときに問題が発生しました。次のように、セッションからユーザー情報を取得します。
$customer = Mage::getSingleton('customer/session')->getCustomer();
$user_id = $customer->getId();
$user_id
これID
で、Magentoシステムにログインしている現在のユーザーを引き継ぐことができます。
基本的に問題は、上記のIDをカスタムテーブルに保存しようとすると、テーブルに保存される値が常に0になることです。
以前、MySQLテーブル列のデータ型をint(10)からtinyint(4)に変更することで解決した別の整数値を保存しようとしたときにこの問題に直面しましたが、この場合、ユーザーIDに対してはそうすることができません。
$model= Mage::getModel('voter/competetion')
->setDesignid($designId)
->setUserId($user_id)
->setVote($vote)
->setStartdate($startDate)
->save();
MySQLの列名は、インストールSQLスクリプトとともに次のとおりです:id、designid、user_id、vote、startdate、enddate
$installer = $this;
$installer->startSetup();
$prefix = Mage::getConfig()->getTablePrefix();
$installer->run("
CREATE TABLE IF NOT EXISTS ".$prefix."vote_competetion (
id int(10) NOT NULL AUTO_INCREMENT,
designid int(10) NOT NULL,
user_id int(10) NOT NULL,
vote tinyint(1) NOT NULL,
startdate datetime NOT NULL,
enddate datetime NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (designid) REFERENCES ".$prefix."vote_design(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
");
Mage::getModel('core/url_rewrite')->setId(null);
$installer->endSetup();
セッターメソッド名に問題がありますか?他のすべての値は正しく保存されています。私はこれについてどうしたらいいのか本当にわかりません。助けてください。
私はすべての助けに感謝します。
ありがとう!