我正在使用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)
答案 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可能更适合您的需求。与此相关的学说是“字符串”。
希望有所帮助。