php – POST devuelve array vacío en el segundo formulario

Tengo una vista a la que llego desde un controlador para mostrar un modelo concreto de camiseta. Después hago un post en la misma página para que elija el color de la camiseta y poder mostrar una lista con las cantidades de cada talla de ese modelo y color concretos, y poder modificarlas. Pues bien el segundo formulario que se pinta dentro de un bucle while, devuelve siempre un array vacío. Si cambio por get, sí recibo los datos por la url, pero ya no me lleva al controlador. Les dejo el código de la vista y del controlador que la pide. En el controlador que recibe los datos solo hay un var_dump() para verificar qué datos llegan.
Controlador:

public function indexByModel()
    {
        if(isset($_GET) && isset($_GET('modelo'))){
            $modelo = (int)$_GET('modelo');
                                               
            $prenda = New Prenda();
            $prenda->setId_modelo($modelo);
            $prendas = $prenda->getByModel();
            
            $result = array();
            $count = 0;
            while ($row = $prendas->fetch_object()){
                $result($count) = $row;
                $count++;
            }
            require_once 'views/prendas/prenda.php';    
    }else{
        echo "No llega el dato por la URL";
    }
       
}

y la vista ‘views/prendas/prenda.php

<div class="row">
<div class="col-5">
    <h1 class="bg-succes text-start mb-1"><?=$result(0)->modelo?></h1>
    <div>
        <img class="border-secondary img-thumbnail my-2" width="90%" src="<?=_URL_BASE_?>/assets/img/CamisetasUnisexCategoria.png">
    </div>
    <div>
        <?=$result(0)->categoria?> / <?=$result(0)->familia?>
    </div>
</div>
<div class="col">
    <h3>Colores</h3>
    
    <div class="row justify-content-start mb-5">  
        <?php $colores = Utils::showColores(); ?>
        <form action="" method="POST">
        <?php while ($color = $colores->fetch_object()): ?>       
            <button name="color" value="<?=$color->id?>" style="background-color:#<?=$color->codigo?>" title>
                <svg width="30" height="50" class="mr-3">
                    <rect width="30" height="30" style="fill:#<?=$color->codigo?>;" alt="<?=$color->color?>" />
                </svg>
            </button>  
        <?php endwhile; ?>   
        </form>
    </div>
    <?php if (isset($_POST) && isset($_POST('color'))): ?>
        <?php $color = (int)$_POST('color'); ?>
        <?php $prendas = Utils::showByModelColor($modelo, $color); ?>
        
        <table class="table text-center">
            <thead>
                <th>Color</th>
                <th>Talla</th>
                <th>Cantidad</th>
                <th>Modificar</th>
            </thead>
            <form action="<?=_URL_BASE_?>?controller=PrendaController&action=update" method="POST">
       
            <?php while($prenda = $prendas->fetch_object()): ?>
                <tr>
                    <td><?=$prenda->color?></td>
                    <td>
                        <?=$prenda->talla?>
                    </td>
                    <td>
                        <?=$prenda->cantidad?>
                    </td>
                    <td>
                       <input type="hidden" name="id()" value="<?=$prenda->id?>" />
                       <input type="number" name="cantidad()"value="<?=$prenda->cantidad?>" min="0" /> 
                        
                    </td>
                </tr>
                <?php endwhile; ?>
                
        </table>
        <input class="btn btn-dark float-right mr-2" type="submit" value="Actualizar" />        
        </form>
        <?php endif; ?>

</div>

El primer POST recibe correctamente el código de color para poder mostras las cantidad de prendas que hay en stock de ese modelo y color.
El segundo formulario muestra las prendas por color y talla y sus cantidades y debería envíar el id de la prenda y la cantidad, pero llega siempre vacío.
He leído páginas de este foro y en inglés. Y he buscado lo que he podido y entendido sobre si podía envíar dos posts sucesivos en la misma página, y o bien no lo he encontrado o no he entendido lo que he encontrado. Llevo días atascado, agradezco su ayuda.