2012-12-18 23 views
0

我想在我的控制器中添加()一條消息到數據庫。這工作到目前爲止。TYPO3 Extbase:操作數應該包含1列:

我有一個名爲「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); 

這是一個錯誤嗎?

感謝您的幫助!

問候

回答

1

TYPO3顯然是試圖使用數組作爲查詢,其失敗的一個組成部分。

最快的解決方法只會被序列化數組中的settersetMessageTags($array)),在這種情況下,在gettergetMessageTags())反序列化Extbase將其保存爲一個字符串,但是你會繼續的可能性,而不與陣列工作任何額外的步驟。

+0

顯然這是個問題。但是,當我序列化該數組,我得到一個非常奇怪的字符串。就像這樣:a:4 {i:0; s:8:「xyvcxyvc」; i:1; s:7:「xyvyxvc」; i:2; s:8:「yxvcyxvc」; i:3; s: 0:「」;} –

+0

這是常見的序列化數組 - 如果你反序列化這樣的字符串,你會得到你的PHP數組。用於存儲無論如何都是最佳選擇的數組 – biesior

+0

http://php.net/manual/en/function.serialize.php – biesior

相關問題