Obrigado pela opinião!!! E sim, estou criando por motivos de estudo mesmo, recentemente terminei um curso sobre o framework e me foi recomendado tentar criar um e-commerce para praticar.
Que massa! Continue nesse pique que vai aprender muito. O que você fez aqui é o objetivo de estudar e aplicar, que é descobrir que algo não funciona e porque determinadas estratégias funcionam melhor que outras em alguns cenários e em outros nem tanto.
Se tiver tempo, tente ver como esses problemas são resolvidos em outros Frameworks, por exemplo, Magento (veja a arquitetura dele no site oficial), ou procure no github e explore as opções. No caso do seu código o maior problema nem estava nele, e sim na abordagem, pois tu resolveria aquele PUT, se fizesse o tratamento do valor do valor do atributo. Mas tu veria na prática (se colocasse em produção) o tanto de gargalo que isso poderia gerar. Como disse, continue praticando e descobrindo o funciona e o que não funciona.
Bons estudos ;)