CakePHPのリクエストパラメータチェック
リクエストパラメータに、不要な値が含まれていた場合は取り除く。
値がなかった場合は空文字の値を追加する。
<?php class UsersController extends AppController { var $name = 'Users'; function beforeFilter() { $keys = array( 'User' => array('name', 'mail', 'password', 'password_confirm'), ); $this->_paramNormalize($this->data, $keys); } function _paramNormalize(&$array, $keys) { if (!is_array($array)) $array = array(); $new_array = array(); foreach ($keys as $k => $v) { if (is_array($v)) { if (!array_key_exists($k, $array)) $array[$k] = array(); $this->_paramNormalize($array[$k], $v); $v = $k; } if (array_key_exists($v, $array)) { $new_array[$v] = $array[$v]; } else { $new_array[$v] = ""; } } $array = $new_array; }
componentに移したほうがよりスッキリします。