我的頁面上有多個表單,用於將商品添加到購物車。這工作得很好,直到我將2個動態創建的Dropdownfields添加到Form中。爲了填補下拉框,我改變Silverstripe - 動態生成表單的多個問題
public function addToCart($title, $price) {}
到
public function addToCart($ID) {}
檢查$ ID返回正確的價值,我的推杆$ ID到一個文本框的值。
這是代碼即可獲得所有項目和窗體
public function getItems() {
return Item::get();
}
在模板
<% loop getItems %>
...
$Top.addToCart($ID)
...
<% end_loop %>
,如果我在功能設置$ ID爲1,比一切工作像預期,但如果我用通過我的標記返回的數據,我收到三個錯誤。
- [注意]類SS_HTTPRequest的對象不能被轉換爲int
- [警告] mysqli的:: real_escape_string()預計參數1是字符串,給出
- [警告]的mysqli :: real_escape_string對象()期望參數1是字符串,對象給出
我認爲錯誤1是因爲$item = Item::get()->byID($ID);
和錯誤2 + 3是因爲下拉菜單。
但是爲什麼?
有人可以請指出我在正確的方向嗎? 這是我的代碼http://pastie.org/private/vnepfjt0pi5qehmoyqv1ag
預先感謝您!
編輯
出錯1:我已經嘗試過的ID轉換成Integre $ID = (int)$ID;
,但仍是同樣的錯誤
喜,getItems()是這樣的 '退貨項目::得到();'它只是返回所有存儲的項目。我已經試圖轉換ID這樣$ ID =(int)$ ID;但現在運氣好。仍然是同樣的錯誤。有任何想法嗎? $顏色是正確的,因爲我想獲取爲這個Item存儲的所有顏色。 – invictus