protected function chain(Sanitize $sanitize, $input, $attribute) { $callback = function ($value) use($sanitize, $attribute) { if (is_array($value)) { if (!$this->recursive) { return $value; } $this->attributes = is_array($this->attributes) && isset($this->attributes[$attribute]) ? $this->attributes[$attribute] : $this->attributes; return $this->sanitize($value); } return $sanitize->sanitize($value); }; return ArrayHelper::updateValue($input, explode('.', $attribute), $callback); }