1

默认的字符串规范化(由Doctrine_Inflector::urlize()“sluggifier”提供)不适合我的项目,所以我需要使用我自己的算法。

我将架构设置如下:

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 的文档似乎没有提到这个主题,除非我只是看错了页面。

4

1 回答 1

2

YAML 中的数组以其他方式定义:

MyObject:
  actAs:
    Sluggable:
      builder: [TextUtility, normalize]
于 2010-12-02T06:36:42.480 回答