2

私は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であり、他のタイプに対応している場合は、このメソッドを再度変更する必要があるため、これは適切なアプローチではありません。

ここでより良いアプローチは何でしょうか?

より多くの情報を提供する必要がありますか?ご意見をお聞かせください。

4

1 に答える 1

1

イベントタイプのハッシュ値を取得して、代わりにそれを使用できます。

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

これにより、.cssファイルが読みにくくなる可能性がありますが、コメントを使用して対処できます。

于 2012-07-03T14:49:44.093 に答える