如何在doctrine中为数组模型添加值?

时间:2010-06-18 14:45:53

标签: mysql codeigniter doctrine

我正在使用Docignine和Codeigniter,我将我的评级栏定义为$ this-> hasColumn('ratings','array',1000);.我正在使用
         $ res = Doctrine :: getTable('Resource') - > find($ resource_id);   $ res->评级= $ rating;   $水库>保存(); 但只有$ rating被插入,覆盖最后一个值,我想将评级存储为数组,例如:1,5,4,2,3,5,1等。如何从一个数据中添加/检索值table列定义为带有Doctrine的数组? (我正在使用mysql)

2 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分:0)

我不熟悉CodeIgniter,但由于Doctrine“数组”类型等同于MySQL TEXT类型,在PHP中我会使用implode()和explode()函数来创建逗号分隔的值字符串,存储为文本字符串。 MySQL VARCHAR可能更适合您的需求。与此相关的学说是“字符串”。

希望有所帮助。