2

我正在使用 Yii,但我试图理解一个很好的逻辑来实现这一点,所以即使你不是 Yii 精通我也可以使用帮助。

我们有那些名称可能包含特殊字符的事件类型,例如:

“阿姆萨”

“阿利·苏洛”

ETC...

我不能简单地获取这些名称并静态调用视图上的模型来显示这些名称,因为我会得到一个无效的 css 类。

该模型:

/**
* @desc Get Event Type Name normalized. 
* @param int $id
* @return object 
*/
 public function getEventTypeName($id) {
  return normalizer_normalize(self::model()->findByPk($id)->name);
 }

风景:

<p class="event-resume-<?= function_exists('normalizer_normalize') ? EventType::getEventTypeName($data->event->type) : '';?>"></p>   

我尝试使用 normalizer_normalize 但由于单词之间的空格,它不适用于“Áli Çulo”。

逻辑问题:

我们可以创建一个方法,它说:

如果 id 为 1,则返回一个名为“nameoftype1”的常量字符串
如果 id 为 2,则返回一个名为“nameoftype2”的常量字符串

但这不是一个好方法,因为如果我们以后有另一个数据库是其他 id 的,对应其他类型,我们需要再次更改此方法。

这里有什么更好的方法?

我应该提供更多信息吗?请指教。

4

1 回答 1

1

您可以获取事件类型的哈希值并使用它来代替:

<p class="event-resume-<?= md5( $data->event->type ) ?>"></p>

这可能会导致 .css 文件的可读性降低,但您可以使用注释来解决这个问题。

于 2012-07-03T14:49:44.093 回答