2010-08-24 47 views
0

我有一個定義爲字段如下:意外學說驗證錯誤

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) 

這是怎麼發生的?

回答

0

上面的代碼示例沒有說明整個故事。我被前面的保存誤導,其中meta_description字段超過255個字符。虛驚!