2012-10-02 41 views
0

嗨,我是用SilverStripe 2.4.7SilverStripe CheckboxSetField默認

Docs

我產生繞250+複選框,使用數據對象的DataObjectSet,並希望他們都被默認選中。我試圖通過相同的數組,填充checkboxsetfield到setDefaultItems方法像這樣...

$checkBox->setDefaultItems($values); 

但這並沒有工作。我完全被難住了,因爲我找不到任何事情,甚至暗示如何做到這一點,我越來越絕望。

我只是不斷收到此錯誤。

in_array() expects parameter 2 to be array, object given 

謝謝。

+0

我知道,我需要傳遞一個數組,而不是一個對象,但是當我使用指定者()它拋出回另一個錯誤。對象的類值無法轉換爲int – MillyMonster

回答

1

聽起來好像你正在傳遞一個帶有鍵/值對的關聯數組,當它是索引數組時,只有鍵(複選框值)。

嘗試

$checkBox->setDefaultItems(array_keys($values)); 
+0

Hi @Shea Dawson。當我把它寫進去的時候,我得到了這個錯誤。 「array_keys()期望參數1是數組,對象給出」所以我嘗試添加 - > toArray()和那種工作。它不會僅檢查具有最低ID的複選框。奇。 – MillyMonster

+0

明白了。結果做了一個foreach,並將值的ID推送到數組中。感謝您指點我正確的方向。 :)這就是爲什麼我喜歡StackOverflow。樂於助人的有幫助,知識淵博的人。 – MillyMonster