He creado el formulario ui_component .
Donde necesito mostrar los detalles del cliente, igual que Customer Edit .
Pero, puedo mostrar sus datos de la customer_entity
tabla.
DataProvider.php
public function getData()
{
if (isset($this->loadedData)) {
return $this->loadedData;
}
// {Vendor}\{Module}\Model\GridFactory
// Returns Customer Resource Model
$items = $this->gridFactory->create()->getCollection();
$items->getSelect()->join('customer_entity_text as second', 'main_table.entity_id = second.entity_id');
//print_r($items->getData()); exit;
foreach($items as $contact){
$this->loadedData[$contact->getEntityId()]['contact'] = $contact->getData();
}
return $this->loadedData;
}
Me uní a la
customer_entity_text
tabla con mi Fábrica para mostrarstatus
(Atributo del cliente).Ahora mi segundo atributo es
file
tipo. Está encustomer_entity_varchar
primer lugar, pensé que agregar otra unión, pero creo que no es la buena manera.
Entonces, ¿hay alguna solución para esto? Necesito mostrar ambos Customer Attribute
en mi forma.
ui_component
<field name="value">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string">Status</item>
<item name="visible" xsi:type="boolean">true</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">contact</item>
</item>
</argument>
</field>
1) El componente anterior funciona bien para el estado pero no para la imagen de perfil que es tipo de imagen.
<field name="value">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string">Profile Image</item>
<item name="visible" xsi:type="boolean">true</item>
<item name="formElement" xsi:type="string">fileUploader</item>
<item name="uploaderConfig" xsi:type="array">
<item name="url" xsi:type="url" path="path_controller"/>
</item>
</item>
</argument>
</field>
Incluso si elimino un campo con el mismo nombre form element
, no parece ser un trabajo.
Eche un vistazo al field
nombre que corresponde value
a Estado .
Si utilizo el mismo para la imagen de campo de componente de imagen está desaparecido.
Nota : No tengo idea de por qué Magento no permite usar el nombre como value
.
Porque me uní a la colección, así que estoy obteniendo
value
como clave de matriz.
** Pregunta: ¿Cómo puedo obtener los atributos del cliente en este formulario sin unirme a la colección?
Además, si tiene otra solución que la mayoría, también será bienvenido. **
Respuestas:
Debe crear su tabla personalizada con la relación de la tabla customer_entity utilizando el script de configuración de la siguiente manera:
Luego debe cargar el modelo del cliente y unirse a su tabla personalizada en la función getData () de DataProvider.php de la siguiente manera:
Ahora puede usar nombres de campo en ui_component de la siguiente manera:
Espero que esta solución pueda resolver su problema.
fuente