2012-02-22 2 views
1

Есть ли способ, которым я могу использовать $this->escape() на моделях или внутри контроллера?

+0

$ this-> побег является специфичным для зрения. Если вам нужно позвонить ему с вашего контроллера или вашей модели, в вашей архитектуре что-то не так. – Maxence

ответ

3

$this->escape() используется в целях, его похожим на htmlentities(), htmlspecialchars

Если вы ищете кавычки значений и идентификаторов следует использовать quote(), quoteInto() методы.

http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.quoting.quote-into

+1

Хорошая точка. quote/quoteInto может быть тем, что он намеревался. –

+0

Да, единственное, что я не знал, это то, почему ему нужно бежать в контроллере или модели, то есть, почему я сохранил ссылку на Zend DB;) –

3

$this->escape() является псевдонимом htmlspecialchars() и htmlentities(). Поэтому вы можете просто использовать их так, как если бы или написать свой собственный метод.

Вы должны избегать использовать escape() в своих моделях, но вместо того, чтобы использовать их в своих контроллерах (или даже лучше, на ваш взгляд) следующим образом:

// instantiate Zend_View 
$view = new Zend_View(); 
$view->setEscape('htmlentities'); 
$obj = new My_Model(); 
$view->setEscape(array($obj, 'methodName')); 
echo $view->render(...); 
+1

Или просто '$ this-> view-> escape ('foo');' в контроллерах –

+0

Или просто удержитесь от вылета, пока не попадете в сценарии просмотра. –