Yii2 es mi framework por defecto para desarrollar un sistema en PHP. En esta entrada trataré de explicar la instalación y puesta en marcha de 2 widgets que nos harán la vida fácil en el proceso de desarrollo.
Para iniciar debo explicar para que funcionan cada uno de estos dos widgets. Primero explicaré yii2-dynamicform, el cual nos facilita la generación de un formulario dinámico clonándolo una y otra vez sin perder la información mostrada. Aquí encuentras como instalarlo, configurar y ponerlo en marcha.
yii2-widget-select2 nos facilitará la generación de elementos select, donde podremos tenerlos desde muy simples hasta muy complejos con anidación AJAX, entre otras opciones. Este widget se basa en el plugin de jQuery select2 y puedes ver su documentación para instalar, configurar y ejecutar aquí.
Por separados, funcionan muy bien con su documentación básica, el problema es cuando intentas ingresar el Select2 dentro de un dynamicform. Select2 actualizó el nombre de la función initSelect2Loading por initS2Loading y por eso debes instalar el fork de yii2-dynamicform realizado por vivekmarakana ingresando
... "require": { ... "vivekmarakana/yii2-dynamicform": "dev-master", "symfony/dom-crawler": "2.8", "symfony/css-selector": "2.8", ... } ...
en el composer.json de tu proyecto. Actualiza con
composer update
tu proyecto. Las 2 lineas extras en el composer.json son por una actualización de Yii2 y se necesitan instalar esas versiones de dom-crawler y css-selector (componentes bases de Symfony) para el buen funcionamiento de dynamicform.