El widget select, o WidgetSelect, permite mostrar valores que están relacionados con otras tablas (o con la misma). Un ejemplo muy sencillo es un selector de país.
<column name="country" numcolumns="2" order="150">
<widget type="select" fieldname="codpais" required="true">
<values source="paises" fieldcode="codpais" fieldtitle="nombre" />
</widget>
</column>
Estas son las propiedades que admite la etiqueta widget:
Recuerda que todos los widgets tienen una serie de propiedades y opciones comunes.
Podemos mostrar los valores de una tabla concreta, valores fijos o incluso podemos añadir valores manualmente desde el controlador.
<widget type="select" fieldname="codpais" required="true">
<values source="paises" fieldcode="codpais" fieldtitle="nombre" />
</widget>
<widget type="select" fieldname="actualizastock" translate="true" required="true">
<values title="book">-2</values>
<values title="subtract">-1</values>
<values title="do-nothing">0</values>
<values title="add">1</values>
<values title="foresee">2</values>
</widget>
Si necesitamos cargar una lista muy concreta de valores en un widget select, podemos hacerlo de la siguiente manera:
$customValues = [
['value' => '1', 'title' => 'UNO'],
['value' => '2', 'title' => 'DOS'],
['value' => '3', 'title' => 'TRES'],
['value' => '14', 'title' => 'CATORCE'],
];
$columnToModify = $this->views[VIEW_NAME]->columnForName(COLUMN_NAME_IN_XMLVIEW);
if($columnToModify) {
$columnToModify->widget->setValuesFromArray($customValues);
}
Sustituir VIEW_NAME por el nombre de la vista/pestaña que sea, y COLUMN_NAME_IN_XMLVIEW con el name de la columna que contiene el widget en el archivo xmlview.
También podemos usar la clase CodeModel para obtener los valores y cargarlos en el widget. Por ejemplo, vamos a cargar una lista con los clientes y su número de teléfono:
$customValues = $this->codeModel->all('clientes', 'codcliente', 'telefono1');
$columnToModify = $this->views[VIEW_NAME]->columnForName(COLUMN_NAME_IN_XMLVIEW);
if($columnToModify) {
$columnToModify->widget->setValuesFromCodeModel($customValues);
}
Necesita identificarse para continuar con esta acción. Haga clic en iniciar sesión o cree una cuenta.
Iniciar sesiónFecha de creación | 06-10-2018 00:00:00 |
Última actualización | 15-01-2020 |
Contador de visitas | 857 |