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

Php 基于给定的数据库记录显示css类,php,yii,Php,Yii,我正在使用Yii,但我试图理解一个很好的逻辑来实现这一点,所以即使你不是Yii专家,我也需要帮助 我们的事件类型的名称可能包含以下特殊字符: “阿姆萨” “ÁliÇulo” 等等 我不能简单地获取这些名称并静态调用视图中的模型来显示这些名称,因为我将得到一个无效的css类 模型: /** * @desc Get Event Type Name normalized. * @param int $id * @return object */ public function getEventT

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

我们的事件类型的名称可能包含以下特殊字符:

“阿姆萨”

“ÁliÇulo”

等等

我不能简单地获取这些名称并静态调用视图中的模型来显示这些名称,因为我将得到一个无效的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>   

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

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

是否加载以事件命名的CSS文件,即
ali_culo.CSS
?@Örs否。我只希望返回一个字符串,以便将其作为类名。然后,在css上,我们可能有:
.event resume ali culo{//csshere}
嗯,没错,我会在html代码和css类声明中得到一个奇怪的名称。但说实话,根据我们正在尝试实现的这一点,如果有新事件发生,我们应该始终更改CSS。。。你认为这是一种很好的方法,还是应该应用另一种完全不同的方法?如果你想要好的名称,你必须使用映射结构。如果您使用的是数据库,只需将另一个字段(
CssClassName
)添加到
EventType
表中即可。如果没有,只需创建一个php数组,将事件类型映射到css类名。在任何情况下,您都不应该像您建议的那样将ID映射到类名。谢谢。我相信我会使用md5.:)