手动生成学说slu ..

时间:2013-09-01 08:38:58

标签: symfony doctrine-orm slug stofdoctrineextensions

我在Symfony2项目中使用了缓慢的行为,但现在我想基于不同的文本(当前标题,旧标题,来自表单输入的用户文本)为一页制作许多slug,并保持它在另一张桌子里。我的问题是 - 如何手动使用任何文本的学说扩展?我找不到任何地方。完美将是这样的:

/* careful - it's not a real, working code! */
$sluggable = new DoctrineSluggable();
$slug = $sluggable->generate('My own text!');
echo $slug; // my-own-text

3 个答案:

答案 0 :(得分:17)

我偶然找到了解决方案here。 代码:

use Gedmo\Sluggable\Util as Sluggable;    

$string = 'My own text!';
$slug = Sluggable\Urlizer::urlize($string, '-');
    if(empty($slug)) // if $string is like '=))' or 'トライアングル・サービス' an empty slug will be returned, that causes troubles and throws no exception
        echo 'error, empty slug!!!';
    else
        echo $slug;

答案 1 :(得分:1)

在此处找到用于生成slu g的学说代码:l3pp4rd/DoctrineExtensions。玩这个课程可以按照您的意愿进行,但您可能需要创建自己的服务以实现您想要的简单使用。有关服务的详细信息,请参阅文档的Service Container部分。

答案 2 :(得分:0)

Sluggable\Urlizer::urlize似乎将'替换为-。 我必须使用Sluggable\Urlizer::transliterate才能更接近SluggableListener的行为。