Jake Vanderwerf
2026-02-17 a24a06002081ad71a78ffeff9072725ba39cf121
inc/meta/Meta.php
@@ -276,6 +276,11 @@
    */
   public function get(string $name): mixed
   {
      // Handle repeater subfield path
      if (str_contains($name, ':')) {
         return $this->getByPath($name);
      }
      // Check computed fields first
      if (isset($this->computed[$name])) {
         return ($this->computed[$name])($this);
@@ -301,6 +306,11 @@
    */
   public function set(string $name, mixed $value): self
   {
      // Handle repeater subfield path (e.g., "services:2:image")
      if (str_contains($name, ':')) {
         return $this->setByPath($name, $value);
      }
      $config = $this->item->getFieldConfig($name);
      if (!$config) {
@@ -442,6 +452,30 @@
      return new Repeater($this, $name);
   }
   protected function setByPath(string $path, mixed $value): self
   {
      $parts = explode(':', $path, 3);
      if (count($parts) !== 3) {
         return $this;
      }
      [$repeaterName, $rowIndex, $subField] = $parts;
      $this->repeater($repeaterName)->setField((int) $rowIndex, $subField, $value);
      return $this;
   }
   protected function getByPath(string $path): mixed
   {
      $parts = explode(':', $path, 3);
      if (count($parts) !== 3) {
         return null;
      }
      [$repeaterName, $rowIndex, $subField] = $parts;
      return $this->repeater($repeaterName)->field((int) $rowIndex, $subField);
   }
   // ─────────────────────────────────────────────────────────────
   // Utility Methods
   // ─────────────────────────────────────────────────────────────