显示基于给定数据库记录的 css 类


Display a css class based on a given db record

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

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

"阿姆萨"

"阿利库洛"

等。。。

我不能简单地抓取这些名称并静态调用视图上的模型来显示这些名称,因为我会得到一个无效的 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的,对应于其他类型,我们需要再次更改此方法。

这里有什么更好的方法?

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

您可以获取事件类型的哈希值并改用它:

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

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