【问题标题】:How do I add values to a an array model in doctrine?如何在学说中向数组模型添加值?
【发布时间】:2010-06-18 14:45:53
【问题描述】:

我将 Doctrine 与 Codeigniter 一起使用,我将我的评级列定义为 $this->hasColumn('ratings','array', 1000);。我正在使用
$res = Doctrine::getTable('Resource')->find($resource_id); $res->评级= $评级; $res->保存(); 但只有 $rating 被插入,覆盖最后一个值,我想将评级存储为一个数组,例如:1,5,4,2,3,5,1 等。如何从用Doctrine定义为数组的表列? (我用的是mysql)

【问题讨论】:

    标签: mysql codeigniter doctrine


    【解决方案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);
        }
    

    【讨论】:

      【解决方案2】:

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

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-03
        • 2014-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多