Как добавить значения в модель массива в доктрине? - PullRequest
1 голос
/ 18 июня 2010

Я использую Doctrine с Codeigniter, я определил свой столбец оценок как $ this-> hasColumn ('rating', 'array', 1000) ;.Я использую
$ res = Doctrine :: getTable ('Resource') -> find ($ resource_id);$ res-> рейтинги = $ рейтинг;$ Res-> Save ();но вставляется только $ rating, перезаписывая последнее значение, я хочу сохранить оценки в виде массива, например: 1,5,4,2,3,5,1 и т. д. Как добавить / получить значения изстолбец таблицы определяется как массив с Doctrine?(Я использую mysql)

Ответы [ 2 ]

1 голос
/ 19 июня 2010

Удалось сделать это, я выложу код ниже, возможно, кто-то найдет его полезным

    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);
    }
0 голосов
/ 19 июня 2010

Я не знаком с CodeIgniter, но так как тип массива Doctrine эквивалентен типу MySQL TEXT, в PHP я использовал бы функции implode () и explode () для создания строки значений, разделенных запятой хранится в виде текстовой строки. MySQL VARCHAR может быть более подходящим для ваших нужд. Эквивалент доктрины для этого - «строка».

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...