0

我想向控制器中的数据库添加()一条消息。到目前为止有效。

我有一个名为“message_tags”的列,我在其中保存了一个数组。

数组是:

array(5 items)
0 => 'dfsdfsd' (7 chars)
1 => 'dsfsdf' (6 chars)
2 => 'sdfdsf' (6 chars)
3 => 'asd' (3 chars)
4 => 'google' (6 chars)

现在,TYPO3 给我一个错误:

Operand should contain 1 column(s): UPDATE   
tx_xxx_domain_model_message SET message_text='dfdsfsdf', 
message_tags=('dfsdfsd','dsfsdf','sdfdsf','asd','google'), mobile_os=('android'), 
tstamp='1355846301', sys_language_uid=NULL WHERE uid='73'

该数组是在我的控制器中构造的(我知道这与良好的编码相去甚远):

foreach($messageTagsArray as $key => $value) {
              $mergedTagArrayValues[] = $value;
            }
            foreach($storedTagsList as $key => $value) {
              $storedTagsListValues[] = $value;
            }
            $mergedTagArray = array_merge($mergedTagArrayValues, $storedTagsListValues);
            $mergedTagArray = array_unique($mergedTagArray);

            $message->setMessageTags($mergedTagArray);

那是一个错误吗?

谢谢你的帮助!

最好的祝福

4

1 回答 1

1

TYPO3 显然正在尝试将您的数组用作查询的一部分,但失败了。

最快的解决方法是在 ( ) 中序列化数组并在setter( setMessageTags($array)) 中反序列化,在这种情况下,Extbase 会将其保存为字符串,但是您无需任何额外步骤即可使用数组。gettergetMessageTags()

于 2012-12-18T16:15:33.733 回答