Example #1
0
 /**
  * Get the required parameters. Return bad request if any of them is missing. This method will return array.
  * 
  * @param variable
  * @return array
  * @link http://koldy.net/docs/input#require
  *
  * @example
  * 		$params = Input::requireParamsArray('id', 'email');
  * 		echo $params['email'];
  */
 public static function requireParamsArray()
 {
     switch ($_SERVER['REQUEST_METHOD']) {
         case 'GET':
             $parameters = $_GET;
             break;
         case 'POST':
             $parameters = $_POST;
             break;
         case 'PUT':
         case 'DELETE':
             $parameters = static::getInputVars();
             break;
     }
     $params = func_get_args();
     $a = array();
     foreach ($params as $param) {
         if (!isset($parameters[$param])) {
             if (Application::inDevelopment()) {
                 $passedParams = implode(',', array_keys($parameters));
                 Log::debug("Missing {$_SERVER['REQUEST_METHOD']} parameter '{$param}', only got " . (strlen($passedParams) > 0 ? $passedParams : '[nothing]'));
             }
             Application::error(400, 'Missing one of the parameters');
         }
         $a[$param] = $parameters[$param];
     }
     return $a;
 }
Example #2
0
 /**
  * Throw error if value is not unique in database
  * 
  * @param string $param
  * @param string $settings (Class\Name,uniqueField[,exceptionValue][,exceptionField])
  * @return true|string
  * @example \Db\User,email,my@email.com
  * @example \Db\User,email,field:id,id
  */
 protected function validateUnique($param, $settings)
 {
     if (isset($this->input[$param]) && !isset($this->invalids[$param]) && trim($this->input[$param]) != '') {
         $settings = explode(',', $settings);
         $settingsCount = count($settings);
         if ($settingsCount < 2) {
             if (LOG && Application::inDevelopment()) {
                 Log::debug('validateUnique got only this: ' . print_r($settings, true));
             }
             throw new Exception('Bad parameters count in Validator::validateUnique method; expected at least 2, got ' . $settingsCount);
         }
         $class = $settings[0];
         $field = $settings[1];
         $exceptionValue = isset($settings[2]) ? $settings[2] : null;
         if (substr($exceptionValue, 0, 6) == 'field:') {
             $exceptionFieldName = substr($exceptionValue, 6);
             if (isset($this->input[$exceptionFieldName])) {
                 $exceptionValue = $this->input[$exceptionFieldName];
             }
         }
         $exceptionField = isset($settings[3]) ? $settings[3] : null;
         if (!$class::isUnique($field, trim($this->input[$param]), $exceptionValue, $exceptionField)) {
             return static::getErrorMessage(8, array('value' => $this->input[$param]));
         }
     }
     return true;
 }