Ich habe ein ui_component- Formular erstellt.
Wo ich Kundendaten anzeigen muss, Entspricht der Kundenbearbeitung .
Aber ich kann ihre Daten aus der customer_entity
Tabelle anzeigen.
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;
}
Ich habe
customer_entity_text
Tabelle mit meiner Fabrik verbunden, um anzuzeigenstatus
(Kundenattribut).Jetzt lautet das Attribut "Mein zweites" "
file
Typ". Es ist incustomer_entity_varchar
, Erstens dachte ich, dass ein weiterer Join hinzugefügt werden soll, aber ich denke, es ist nicht der richtige Weg.
Gibt es dafür eine Lösung? Ich muss beide Customer Attribute
in meinem Formular anzeigen .
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). Die obige Komponente funktioniert für den Status , nicht jedoch für das Profilbild mit dem Image-Typ.
<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>
Selbst wenn ich ein Feld mit demselben Namen entferne, form element
scheint es nicht zu funktionieren.
Schauen Sie sich den field
Namen an, der value
für Status steht .
Wenn ich dasselbe für das Bildfeld benutze, ist die Bildkomponente verschwunden.
Hinweis : Ich habe keine Ahnung, warum Magento die Verwendung des Namens als nicht zulässt value
.
Weil ich mich der Sammlung angeschlossen habe, erhalte ich
value
als Array-Schlüssel.
** Frage: Wie kann ich Kundenattribute in diesem Formular erhalten, ohne der Sammlung beizutreten?
Auch wenn Sie eine andere Lösung als die meisten haben, sind Sie herzlich willkommen. **
quelle
Antworten:
Sie müssen Ihre benutzerdefinierte Tabelle mit der Beziehung customer_entity mithilfe des Setup-Skripts wie folgt erstellen :
Anschließend müssen Sie das Kundenmodell laden und Ihre benutzerdefinierte Tabelle in der Funktion getData () von DataProvider.php wie folgt verknüpfen:
Jetzt können Sie Feldnamen in ui_component wie folgt verwenden:
Hoffe, dass diese Lösung Ihr Problem beheben kann.
quelle