我在Symfony2项目中使用了缓慢的行为,但现在我想基于不同的文本(当前标题,旧标题,来自表单输入的用户文本)为一页制作许多slug,并保持它在另一张桌子里。我的问题是 - 如何手动使用任何文本的学说扩展?我找不到任何地方。完美将是这样的:
/* careful - it's not a real, working code! */
$sluggable = new DoctrineSluggable();
$slug = $sluggable->generate('My own text!');
echo $slug; // my-own-text
答案 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的行为。