2017-07-19 65 views
-1

我想在我的實體保存中執行沒有引號的htmlspecialchars。CakePHP驗證器不工作表單實體

代碼:

$post['body'] = htmlentities($this->request->getData('body'), ENT_NOQUOTES); 

驗證不保存努力。

如何使它工作?

由於

回答

0

h()方法僅僅是對htmlspecialchars()更多信息的包裝可在蛋糕API中找到https://book.cakephp.org/3.0/en/core-libraries/global-constants-and-functions.html#h

h(string $text, boolean $double = true, string $charset = null) 

長期和短期的是,對於那些第一參數函數是一個字符串,並且傳入一組數據。如果你想剝奪那些與你的自己或個人運行的特殊字符的每個元素的功能

編輯您可以覆蓋patchEntity():增加更多明顯的例子,以保持驗證

可以使用withData設置響應數據並仍然使用修補程序實體。例如。

$data = $this->request->withData('body', htmlentities($this->request->getData('body'), ENT_NOQUOTES)) 

然後使用新的請求對象修補/驗證實體。

patchEntity($post, $data) 
+0

如果我嘗試$ post ['body'] = htmlentities($ this-> request-> getData('body'),ENT_NOQUOTES);驗證器不起作用。有什麼方法可以使它工作 - 即使身體和getData一樣嗎? –

+0

您可以使用withData設置響應數據並仍使用修補程序實體。例如'$ data = $ this-> request-> withData('body',htmlentities($ this-> request-> getData('body'),ENT_NOQUOTES))'然後使用帶有$ data的補丁實體作爲請求。我會用更清晰的示例編輯我的帖子 – KaffineAddict

+0

感謝您的回覆。我得到當使用$回覆['身體'] = $ this->請求 - > withData('body',htmlentities($ this-> request-> getData('body'),ENT_NOQUOTES)時,無法將值轉換爲字符串。 ; –