Comment ajouter un sélecteur de plage de temps au formulaire adminhtml dans Magento 2?


9

Dans les pages devdocs de Magento 2, il y a un exemple de sélecteur de plage de temps . entrez la description de l'image ici Mais, je ne trouve aucun exemple de comment l'ajouter dans mon formulaire backend pour créer / éditer un modèle personnalisé. Avez-vous une idée de la façon de procéder?

Aussi, j'ai une question sur la façon de l'enregistrer dans la base de données mysql . Ce sélecteur a-t-il besoin de 2 champs ("de" et "à") pour stocker l'heure entrée?


Voici un lien pour ajouter des uiComponents devdocs.magento.com/guides/v2.3/ui_comp_guide/howto/… C'est dans le même sens, créer les attributs à enregistrer en db, créer le xml à afficher.
djfordz

@jurgen avez-vous déjà trouvé une solution pour celle-ci?
fmsthird

Non, je ne travaille plus avec Magento2
jurgen

Réponses:


0

Essaye ça,

En dessous de app\code\Namespace\Module\Block\Adminhtml\Custom\Edit\Form.php

$fieldset->addField(
            'from',
            'time',
            [
                'name' => 'from',
                'label' => __('From'),
                'title' => __('From'),
                'required' => true,
                'note' => __('From Timer')
            ]
        );

$fieldset->addField(
            'to',
            'time',
            [
                'name' => 'to',
                'label' => __('To'),
                'title' => __('To'),
                'required' => true,
                'note' => __('To Timer')
            ]
        );

Créez le champ dans la base de données pour enregistrer les valeurs de et vers.

Dans le fichier du contrôleur,

public function saveData()
{
   $data = $this->getRequest()->getPostValue();
   $model = $this->_objectManager->create('Namespace\Module\Model\Custom');
   $model->setData($data);
   $model->save();
}

J'ai essayé ça plus tôt. Ce code ajoute deux champs temporels positionnés verticalement. Si j'ai besoin de 7 sélecteurs de plage horaire (pour chaque jour de la semaine), cela semble très lourd. Je voulais le placer au moins sur une ligne mais très souhaitable de l'avoir exactement comme sur la photo ci-dessus. Mon avis est que ce sélecteur de plage de temps n'existe que dans les modèles de conception de Magento 2 et n'a pas encore d'implémentation. Pour l'instant, je l'ai fait en utilisant un champ de texte unique et un sélecteur de plage de dates Bootstrap, je l'ai personnalisé pour afficher uniquement la plage de temps. Résultat je sauvegarde en DB au format texte ("10: 00-15: 00" par exemple) qui convient à mes tâches.
jurgen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.