2017-07-09 6 views
0

これを検索しようとしましたが、運が見つかりませんでした。CakePHP 3.4のリクエストデータを解除する方法

$ request-> dataは4.0では廃止され、代わりに$ request-> getData()を使用することが示唆されています。

リクエストデータの設定を解除するオプションがない場合は、どうすれば設定を解除できますか?

これは、ログインまたはパスワードで登録するときに便利です。彼らが検証に失敗したとき、彼らはパスワードを再入力する必要があります。

答えて

3

それがレンダリングされていたときにも、リクエストオブジェクトに触れると、それはコントロールにvalueオプションを空の文字列を渡すことでなくて、その方法は、フィールドは常に空になることを行うための簡単な方法があります:

$this->Form->control('password', ['value' => '']) 
本当に要求オブジェクト上の未設定のPOSTデータへの必要性がある場合には、言われていること

(これは多くの場合、時間は何をやっていると間違って何かがあることを示している)、あなたは空のすべてのいずれかにwithParsedBody()を使用することができます。

$this->request = $this->request->withParsedBody([]); 

または背面部分配列書き:これは少し奇妙に見えるが、既に述べたようにも

$data = $this->request->getData(); 
unset($data['password']); 
$this->request = $this->request->withParsedBody($data); 

を、リクエスト・オブジェクト上の未設定のデータへの必要性は、しばしば、アプリケーション・ロジックの欠陥を示しています。

+0

これは十分に強調することはできません: "要求オブジェクトのデータを頻繁にアンセットする必要性は、アプリケーションロジックの欠陥を示します。" – ADmad

関連する問題