【问题标题】:Can cakephp's inflector slug ignore specified characters?cakephp 的变形器 slug 可以忽略指定的字符吗?
【发布时间】:2012-06-14 09:42:42
【问题描述】:

我想要实现的是:

Let inflector slug 忽略字符串中的特殊字符,该字符通常会被替换字符串替换为 inflector slug。

例如 我想被忽略的字符:'/'

输入:这是一个 /example/

输出:this_is_an_example

我想要的输出:this_is_an_/example/

我在文档中找到了“_uninflected”属性,但我认为这不是我要找的(也不会满足我的要求)。

【问题讨论】:

  • this_is_an_/example/ 当然会通过路由器解析为this_is_an_ 和example 这两个参数。这真的是你想要的吗?
  • 简而言之,不,您不能排除字符。如果需要,您应该实现自己的 slugging 功能。如果可以的话,我建议使用iconv,因为它更快。
  • @deceze,路由是由CakePHP以外的其他东西完成的,在目前的情况下,是的,这就是我想要完成的。
  • @jeremyharris 谢谢。那么我将实现我自己的 slugging 功能。

标签: cakephp cakephp-2.1 slug


【解决方案1】:

你可以做一个爆炸和蛞蝓每个令牌。

$input='/hi/im/a/non inflected ùrl/:=D';
$tokens=explode('/',$input);
foreach($tokens as &$token) $token=Inflector::slug($token);
$output='this_is_an_'.implode('/',$tokens);

【讨论】:

  • 接近我目前使用的。我用一个占位符字符串替换斜杠,在​​重击它之后我再次用斜杠替换它。我接受这是正确的答案,因为似乎没有真正的“有效”解决方案。
猜你喜欢
  • 2012-12-21
  • 1970-01-01
  • 2011-02-05
  • 2021-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多