code: public function confirm() {
          foreach ($this->getDefault() as $name => $default) {
              if ($this->$name === null && $default === null) {
                  $default_method = "_default_$name";
                  if (method_exists($this, $default_method)) {
                      $this->$name = $this->$default_method();
                  } else {
                      throw new \InvalidArgumentException("meta:" . get_called_class() . " field [$name] could not be empty");
                  }
              }
  
              $method = "_confirm_$name";
              if (method_exists($this, $method)) {
                  $this->$name = $this->$method($this->$name);
              }
  
              if (is_object($this->$name)) {
                  $object = $this->$name;
                  ($object instanceof self) && $object->confirm();
              }
          }
  
          // 整体confirm勾子
          $this->_confirm();
          return $this;
      }
docs: 确认数据
  @throws \UnexpectedValueException