php - 无法从自定义 Magento 模块将数据保存在 MySQL 中

标签 php mysql zend-framework magento orm

我正在为 Magento 1.7.0 制作自定义模块。我在尝试将数据插入 MySQL 时遇到问题。我按如下方式从 session 中获取用户信息:

$customer = Mage::getSingleton('customer/session')->getCustomer(); 
$user_id = $customer->getId();

$user_id 现在带有登录到我的 Magento 系统的当前用户的 ID

基本上问题是,当我尝试将上述 ID 保存到我的自定义表中时,保存在我的表中的值始终是 0

以前我在尝试保存另一个整数值时遇到过这个问题,我通过将 MySQL 表列的数据类型从 int(10) 更改为 tinyint(4) 来解决这个问题,但在这种情况下我不能为用户这样做身份证。

$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();

是不是我的setter方法名有问题。所有其他值都被正确保存。我真的不知道该怎么办。请帮忙。

感谢所有帮助。

谢谢!

最佳答案

如果您从一开始就没有 user_id 在表中,您应该清除缓存,因为 Magento 保留它的结构缓存并且不会设置任何新的列数据。

关于php - 无法从自定义 Magento 模块将数据保存在 MySQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10816034/

相关文章:

mysql - 在 Mysql 中检索 JSON 数组内的 Json 数据值

php - 获得 og :image meta property 的最佳方法是什么

css - Zend Framework 添加 CSS 文件的问题

php - 简单的 html dom 解析器返回错误 500

Php-cpp 调用未定义的函数

PHP/MySQL 将文本数据类型的时间戳转换为可用的日期格式

android - 来自同一 Android 应用程序的用户之间的 GCM

php - 基于 PHP 通过 HTTP 从录制文件流式传输实时视频

mysql - 显示MySQL中第二个表中不存在的记录

zend-framework - 具有部分基础的模块化 Zend 框架