2010-06-18 67 views
1

我在Codeigniter中使用Doctrine,我將我的評級列定義爲$ this-> hasColumn('ratings','array',1000);.我正在使用
$ res = Doctrine :: getTable('Resource') - > find($ resource_id); $ res-> ratings = $ rating; $ res-> save(); 但只有$等級被插入,覆蓋最後一個值,我想將等級存儲爲一個數組,例如:1,5,4,2,3,5,1等等。如何添加/檢索值使用Doctrine定義爲數組的表列? (我正在使用mysql)如何在原則中將值添加到數組模型中?

回答

0

我不熟悉CodeIgniter,但由於Doctrine「array」類型等同於MySQL TEXT類型,所以在PHP中我將使用implode()和explode()函數來創建一個以逗號分隔的字符串存儲爲文本字符串。 MySQL VARCHAR可能更適合您的需求。該原則等同於「串」。

希望有所幫助。

+0

謝謝你的提示 – hac 2010-06-19 14:45:12

1

設法做到這一點,我會後下面的代碼也許有人會發現它有用

public function add_rating() { 
     $rating = (int) $this->uri->segment(3); 
     $resource_id = (int) $this->uri->segment(4); 
     if((is_numeric($rating)) && ($rating > 0) && ($rating <= 5)) { 
      $res = Doctrine::getTable('Resource')->find($resource_id); 
      $ratings = $res->ratings; 
      $ratings[] = $rating; 
      $res->ratings = $ratings; 
//   echo '<pre>'; 
//   echo print_r($ratings); 
      $res->save(); 
     } 
     redirect('/home/show/' . $resource_id); 
    } 
相關問題