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に移したほうがよりスッキリします。