意外学说验证错误

问题描述:

我有一个定义为字段如下:意外学说验证错误

class Subcategory extends BaseSubcategory {} 

abstract class BaseSubcategory extends Doctrine_Record 
{ 
    public function setTableDefinition() 
    { 
     // ... 
     $this->hasColumn('meta_description', 'string', 255); 
     // ... 
    } 

    // ... 
} 

这里的表是什么样子:

mysql> DESCRIBE subcategory; 
+----------------------+------------------+------+-----+---------+----------------+ 
| Field    | Type    | Null | Key | Default | Extra   | 
+----------------------+------------------+------+-----+---------+----------------+ 
| id     | int(10) unsigned | NO | PRI | NULL | auto_increment | 
[...] 
| meta_description  | varchar(255)  | YES |  | NULL |    | 
[...] 
+----------------------+------------------+------+-----+---------+----------------+ 
10 rows in set (0.00 sec) 

这里是我的代码来保存创纪录

$m = new Subcategory; 
// ... 
$m->meta_description = null; 
$m->save(); 

我收到以下验证错误

* 1 validator failed on meta_description (length) 

这是怎么发生的?

上面的代码示例没有说明整个故事。我被前面的保存误导,其中meta_description字段超过255个字符。虚惊!