2010-12-02 75 views
1

Sluggable建設者預期路徑默認字符串正常化(由Doctrine_Inflector::urlize()「sluggifier」提供)不適合我的項目,所以我需要利用我自己的算法。根據一些指令,我發現到的Symfony /原則

MyObject: 
    actAs: 
    Sluggable: 
     fields: [name] 
     builder: array('TextUtility', 'normalize') 
    columns: 
    name: string(255) 

,我將我的實用工具類,我的項目的lib文件夾(雖然我也嘗試過的應用程序的lib文件夾):

設置我的模式,如下所示在另一個論壇:

<?php 
//lib/TextUtility.class.php 

class TextUtility { 
    public static function normalize($str) { 
     /* ... */ 

     return $str; 
    } 
} 
?> 

當我運行symfony doctrine:build --all我被下面的錯誤招呼:

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'array('TextUtility', 'normalize')' not found or invalid function name in /symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Template/Listener/Sluggable.php on line 171 

我假設我只是將我的工具放在錯誤的地方,並且在需要時未加載。我把它放在錯誤的地方? Doctrine's documentation似乎沒有提到這個問題,除非我只是看着錯誤的頁面。

回答

2

陣列在YAML定義其他的方式:

MyObject: 
    actAs: 
    Sluggable: 
     builder: [TextUtility, normalize] 
+0

哇,因爲很明顯,因爲這是,我無法相信我錯過了。謝謝! – Dolph 2010-12-02 14:54:41