Ich habe ein benutzerdefiniertes Magento2-Administratormodul mit Bild-Upload-Funktion. Ich möchte ein Bild vom Administrator hochladen. Welcher Code für das Anzeigebildfeld in angewendet werden soll, Bild hochladen, auch Bildanzeige in Bearbeitungsaktion.
Vielen Dank
Dateipfad : app\code\[Vendor]\[Module]\Block\Adminhtml\Emp\Edit\Tab\Main.php
/**
* Prepare form
*
* @return $this
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
protected function _prepareForm()
{
$model = $this->_coreRegistry->registry('emp_post');
$isElementDisabled = false;
/** @var \Magento\Framework\Data\Form $form */
$form = $this->_formFactory->create();
$form->setHtmlIdPrefix('page_');
$fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Employee Information')]);
if ($model->getId()) {
$fieldset->addField('customer_id', 'hidden', ['name' => 'customer_id']);
}
$fieldset->addField(
'firstname',
'text',
[
'name' => 'firstname',
'label' => __('First Name'),
'title' => __('First Name'),
'required' => true,
'disabled' => $isElementDisabled,
'value' =>'abc'
]
);
$fieldset->addField(
'lastname',
'text',
[
'name' => 'lastname',
'label' => __('Last Name'),
'title' => __('Last Name'),
'required' => true,
'disabled' => $isElementDisabled,
'value' =>'abc'
]
);
$fieldset->addField(
'email',
'text',
[
'name' => 'email',
'label' => __('Email Address'),
'title' => __('Email Address'),
'required' => true,
'disabled' => $isElementDisabled,
'value' =>'abc'
]
);
$fieldset->addField(
'image',
'image',
array(
'name' => 'image',
'label' => __('Image'),
'title' => __('Image')
)
);
$fieldset->addField(
'telephone',
'text',
[
'name' => 'telephone',
'label' => __('Telephone'),
'title' => __('Telephone'),
'required' => true,
'disabled' => $isElementDisabled,
'value' =>'abc'
]
);
$dateFormat = $this->_localeDate->getDateFormat(
\IntlDateFormatter::SHORT
);
$fieldset->addField(
'dob',
'date',
[
'name' => 'dob',
'label' => __('Date of birth'),
'date_format' => $dateFormat,
'disabled' => $isElementDisabled,
'class' => 'validate-date validate-date-range date-range-custom_theme-from'
]
);
$fieldset->addField(
'is_active',
'select',
[
'label' => __('Status'),
'title' => __('Status'),
'name' => 'is_active',
'required' => true,
'options' => $this->_status->getOptionArray(),
'disabled' => $isElementDisabled
]
);
if (!$model->getId()) {
$model->setData('is_active', $isElementDisabled ? '0' : '1');
}
if($model->getData('image')){
$model->setData('image','learning/images'.$model->getData('image'));
}
$form->setValues($model->getData());
$this->setForm($form);
return parent::_prepareForm();
}
magento2
image-upload
Suresh Chikani
quelle
quelle
Antworten:
Sie müssen eine Klasse erstellen, um Ihr Bild-Upload-Feld zu verarbeiten und das Bild nach dem Hochladen anzuzeigen.
Also
[Namespace]\[Module]\Block\Adminhtml\[Entity]\Helper\Image
Klasse schaffenErstellen Sie dann die Klasse, mit der Sie den Bild-Upload-Pfad und das Upload-Verzeichnis abrufen können
_prepareForm
Fügen Sie dies jetzt in Ihrer Registerkarte "Bearbeiten für" direkt nach dem Deklarieren des Feldsatzes in die Methode einund fügen Sie Ihr Bildfeld so hinzu
In dem Controller, der Ihre Entität speichert, müssen Sie die folgenden Klassen in den Konstruktor einfügen
Magento\MediaStorage\Model\File\UploaderFactory
und[Namespace]\[Module]\Model\[Entity]\Image
Lassen Sie Ihre Klasse so aussehen
Fügen Sie dies nun im selben Controller hinzu, bevor Sie aufrufen
$[entity]->save()
und erstellen Sie diese Methode:
Ein vollständiges Beispiel zum Erstellen einer Entität, die das Hochladen von Bildern und Dateien unterstützt (etwas anders als hier beschrieben, da es eine zusätzliche Klasse zum Hochladen enthält) finden Sie hier
quelle
adminhtml Grid
Abschnitt anzeigen ? Im Moment ist Standard Magento 2 zeigt es fürProduct Grid
.Das Admin-Modul für grundlegende Nachrichten zum Hinzufügen / Aktualisieren finden Sie hier . Wenn Sie nach einer einfachen Lösung zum Hochladen von Bildern suchen, sehen Sie sich den folgenden Ausschnitt aus dem Link an .
quelle
Sie können ein Bildfeld in der _prepareForm () -Methode Ihres Administrationsformulars hinzufügen:
quelle
Überprüfen Sie den folgenden Link zum Hochladen von benutzerdefinierten Formularen für Administratoren
Admin benutzerdefiniertes Formular Bild Upload Magento 2
quelle