2012-02-22 6 views
1

모델이나 컨트롤러 내부에 $this->escape()을 사용할 수 있습니까?

+0

$ this->을 탈출 뷰에 특정 :

당신은 당신의 모델 escape()를 사용하는 대신 다음과 같이 (보기에, 또는 더 나은) 당신의 컨트롤러에서 사용하는 피해야한다. 컨트롤러 또는 모델에서 호출해야하는 경우 아키텍처에 문제가 있습니다. – Maxence

답변

3

$this->escape()

htmlspecialchars 당신이 quote(), quoteInto() 방법을 사용한다 값 및 식별자를 인용 찾고 있다면, htmlentities()에 그와 유사한,보기에 사용됩니다.

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

+1

좋은 지적. 따옴표/따옴표는 그가 의도 한 것일 수 있습니다. –

+0

네, 내가 확신 할 수없는 유일한 이유는 그가 컨트롤러에서 탈출을 필요로하는 이유입니다. 즉, 제가 젠드 DB에 대한 링크를 유지해야하는 이유입니다) –

3

$this->escape()htmlspecialchars()htmlentities()에 대한 별칭입니다. 따라서, 당신은 단순히 그것들을 그대로 사용하거나 자신의 방법을 쓸 수 있습니다.

// 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

또는 뷰 스크립트 자체에 들어갈 때까지 모두 이스케이프를 해제하십시오. –