2013-11-20 4 views
0

Мой вопрос касается функции CFormatter:Yii что используется для formatRaw?

/** 
* Formats the value as is without any formatting. 
* This method simply returns back the parameter without any format. 
* @param mixed $value the value to be formatted 
* @return string the formatted result 
*/ 
public function formatRaw($value) 
{ 
    return $value; 
} 

Зачем кому это нужно? Он возвращает точное заданное значение.

Я только предполагаю, что он может использоваться в качестве заполнителя. Не могли бы вы привести мне пример, где его можно использовать?

ответ

3

Используется там, где формат по умолчанию является «текстом», например, в CGridView или CDetailView. Если type не был установлен в raw в следующем коде CGridView, то value будет экранирован и напечатан как <a>Link</a><img scr='test'/> вместо html.

'columns'=>array(
    array(
     'header'=>'This link and picture only show when the format is html or raw', 
     'type'=>'raw', 
     'value'=>"<a>Link</a><img scr='test'/>", 
    ) 

EDIT

The CHtmlPurifier API page дает причину, почему raw бы предпочтительнее html

Примечание: поскольку HTML Purifier большой пакет, его производительность не очень хорошо. Вы должны рассмотреть либо кеширование результата очистки, либо очистку ввода пользователя перед сохранением в базу данных.

+1

"* Эта ссылка и картинка отображаются только в том случае, если формат необработанный *" является ложным. Он также отображает, когда формат ': html'. –

+0

Спасибо @SamuelLiew. Ты прав. Я обновил ответ. – topher

+0

@topher большое спасибо за ваш ответ! –

Смежные вопросы