0

当尝试通过单击提交按钮将值从字段集发送到数据库时,我收到以下错误“Error500: JTableUser::bind( NULL )” 。

我在模型中的保存功能如下所示:

public function save($data)
    {
        $userId = (!empty($data['id'])) ? $data['id'] : (int) $this->getState('user.id');

        $user = new JUser($userId);

        JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');
        $table =& JTable::getInstance('User', 'JTable', array());

        // Unset the username so it does not get overwritten
        unset($data['username']);

        // Unset the block so it does not get overwritten
        unset($data['block']);

        // Unset the sendEmail so it does not get overwritten
        unset($data['sendEmail']);

        // Bind the data.
        if (!$table->bind($data)) {
            $this->setError(JText::sprintf('USERS PROFILE BIND FAILED', $user->getError()));
            return false;
        }

        // Load the users plugin group.
        JPluginHelper::importPlugin('user');

        // Null the user groups so they don't get overwritten
        $user->groups = null;

        // Store the data.
        if (!$table->save()) {
            $this->setError($user->getError());
            return false;
        }

        return $user->id;
    }`

$data 填写正确,"getInstance('User', 'JTable', array());"工作正常。感谢您的关注,有人可以帮我解决我的问题吗?

4

1 回答 1

0

回复晚了,但我认为问题出在:

if (!$table->save())

因为 JTable (3.2) 中的 save 方法期望绑定数据作为第一个参数,并且它没有得到任何东西。

由于您之前已经绑定了数据,您可能想要:

if (!$table->store())

http://api.joomla.org/cms-3/classes/JTable.html#method_save

于 2014-01-23T01:57:50.713 回答