Próbowałem utworzyć atrybut dla produktu, który ma być wyświetlanym kalendarzem daty i godziny i który powinien być przechowywany w bazie danych tylko jako format daty i godziny. Walczyłem z tym bardzo dużo, ale bez powodzenia. Czy możesz mi pomóc ... to jest mój skrypt
$ eavSetup-> addAttribute (-> addAttribute (
\ Magento \ Katalog \ Model \ Produkt :: ENTITY,:: ENTITY ,
„xyz_start_time”,„xyz_start_time” ,
[[
„grupa” => „xyz”,„grupa” => „xyz” ,
„type” => „datetime”,„type” => „datetime” ,
„backend” => '',„backend” => '' ,
„frontend” => '',„frontend” => '' ,
„label” => „Czas rozpoczęcia”,„label” => „Czas rozpoczęcia” ,
„input” => „date”,„input” => „date” ,
„class” => '',„class” => '' ,
„source” => '',„source” => '' ,
'global' => \ Magento \ Catalog \ Model \ ResourceModel \ Eav \ Attribute :: SCOPE_GLOBAL,'global' => \ Magento \ Catalog \ Model \ ResourceModel \ Eav \ Attribute :: SCOPE_GLOBAL ,
„widoczne” => prawda,„widoczne” => prawda ,
„wymagane” => fałszywe,„wymagane” => fałsz ,
„user_defined” => true ,
„default” => ” ,
„searchable” => false ,
„filterable” => false ,
„porównywalne” => fałsz ,
'visible_on_front' => false ,
'used_in_product_listing' => true ,
„niepowtarzalny” => fałsz ,
„Apply_to” => „prosty, konfigurowalny, wirtualny, pakiet, do pobrania”
]
);
$eavSetup->addAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'xyz_end_time',
[
'group' => 'xyz',
'type' => 'datetime',
'backend' => '',
'frontend' => '',
'label' => 'End Time',
'input' => 'date',
'class' => '',
'source' => '',
'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => 'simple,configurable,virtual,bundle,downloadable'
]
);
Tworzy datepicker z datą, która nie pokazuje godziny.
magento-2.1
datetime
szef Shankar
źródło
źródło
Odpowiedzi:
Jednym z możliwych rozwiązań jest użycie modyfikatorów. Musisz zdefiniować modyfikator w Vendor \ Module \ etc \ adminhtml \ di.xml, a następnie sam utworzyć modyfikator w Vendor \ Module \ Ui \ DataProvider \ Product \ Form \ Modifier \ Datetime.php . Modyfikator powinien ustawić konfigurację czasu dla atrybutu.
Więcej informacji można znaleźć w tej odpowiedzi: Magento 2 Utwórz datę z atrybutem Czas dla produktu
źródło
Jest to błąd związany z magento2. To pole jest w rzeczywistości datetime, jednak selektor daty to tylko data bez godziny. Jako szybkie obejście można użyć interfejsu API do ustawienia daty i godziny. W przeciwnym razie będziesz musiał zastąpić narzędzie do wyboru daty lub plik Magento w poszukiwaniu błędu w github.
źródło