How Do we can give dynamic data for a form field in admin form(ui-component) in magento 2Product Listing Ui...
Why does processed meat contain preservatives, while canned fish needs not?
French for 'It must be my imagination'?
Please, smoke with good manners
How to get a plain text file version of a CP/M .BAS (M-BASIC) program?
Why do Computer Science majors learn Calculus?
How to have a sharp product image?
Controversial area of mathematics
What are the potential pitfalls when using metals as a currency?
Phrase for the opposite of "foolproof"
Why is it that the natural deduction method can't test for invalidity?
What language was spoken in East Asia before Proto-Turkic?
Exchange,swap or switch
Rivers without rain
Do I have an "anti-research" personality?
Is there really no use for MD5 anymore?
How can I practically buy stocks?
Can someone publish a story that happened to you?
To say I met a person for the first time
What's the polite way to say "I need to urinate"?
How to verbalise code in Mathematica?
Size of electromagnet needed to replicate Earth's magnetic field
How can I place the product on a social media post better?
Don’t seats that recline flat defeat the purpose of having seatbelts?
Document starts having heaps of errors in the middle, but the code doesn't have any problems in it
How Do we can give dynamic data for a form field in admin form(ui-component) in magento 2
Product Listing Ui Component xml file not overriding in custom moduleMagento 2 Admin Form FieldMagento 2 Add new field to Magento_User admin formCan't set value for wysiwyg field component in admin formMagento2: Dependency in admin form fieldHow to add default values for system configuration in magento 2Add a generic field in admin formHow to Update Magento 2 configurable child products price by REST APIField labels missing from UI component formHow to create dynamic rows field in custom Ui component formHow to add form element CANVAS using ui component magento admin form
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
I need to add note to the form field using notice tag. for example
<notice translate="true">Image size should be equal to some(here I
need to pass dynamic value)</notice>
form.xml
<field name="image" sortOrder="60" formElement="fileUploader">
<settings>
<notice translate="true">Image size should be equal to some(here I need to pass dynamic value)</notice>
<label translate="true">Image</label>
<componentType>fileUploader</componentType>
<visible>true</visible>
</settings>
<formElements>
<fileUploader>
<settings>
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
<maxFileSize>102400</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">a/b/c</param>
</uploaderConfig>
<previewTmpl>x_y/image-preview</previewTmpl>
</settings>
</fileUploader>
</formElements>
</field>
magento2.2 uicomponent adminform custom-field
bumped to the homepage by Community♦ 13 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I need to add note to the form field using notice tag. for example
<notice translate="true">Image size should be equal to some(here I
need to pass dynamic value)</notice>
form.xml
<field name="image" sortOrder="60" formElement="fileUploader">
<settings>
<notice translate="true">Image size should be equal to some(here I need to pass dynamic value)</notice>
<label translate="true">Image</label>
<componentType>fileUploader</componentType>
<visible>true</visible>
</settings>
<formElements>
<fileUploader>
<settings>
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
<maxFileSize>102400</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">a/b/c</param>
</uploaderConfig>
<previewTmpl>x_y/image-preview</previewTmpl>
</settings>
</fileUploader>
</formElements>
</field>
magento2.2 uicomponent adminform custom-field
bumped to the homepage by Community♦ 13 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
how to create form using ui-component? or simple
– Birjitsinh Zala
Jan 17 '18 at 13:11
I have created form using ui-component
– Jaisa
Jan 17 '18 at 13:12
<uiComponent name="vendor_department_addform"/> wait am write full code in ans
– Birjitsinh Zala
Jan 17 '18 at 13:15
add a comment |
I need to add note to the form field using notice tag. for example
<notice translate="true">Image size should be equal to some(here I
need to pass dynamic value)</notice>
form.xml
<field name="image" sortOrder="60" formElement="fileUploader">
<settings>
<notice translate="true">Image size should be equal to some(here I need to pass dynamic value)</notice>
<label translate="true">Image</label>
<componentType>fileUploader</componentType>
<visible>true</visible>
</settings>
<formElements>
<fileUploader>
<settings>
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
<maxFileSize>102400</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">a/b/c</param>
</uploaderConfig>
<previewTmpl>x_y/image-preview</previewTmpl>
</settings>
</fileUploader>
</formElements>
</field>
magento2.2 uicomponent adminform custom-field
I need to add note to the form field using notice tag. for example
<notice translate="true">Image size should be equal to some(here I
need to pass dynamic value)</notice>
form.xml
<field name="image" sortOrder="60" formElement="fileUploader">
<settings>
<notice translate="true">Image size should be equal to some(here I need to pass dynamic value)</notice>
<label translate="true">Image</label>
<componentType>fileUploader</componentType>
<visible>true</visible>
</settings>
<formElements>
<fileUploader>
<settings>
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
<maxFileSize>102400</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">a/b/c</param>
</uploaderConfig>
<previewTmpl>x_y/image-preview</previewTmpl>
</settings>
</fileUploader>
</formElements>
</field>
magento2.2 uicomponent adminform custom-field
magento2.2 uicomponent adminform custom-field
edited Jan 17 '18 at 13:33
Jaisa
asked Jan 17 '18 at 13:00
JaisaJaisa
9061940
9061940
bumped to the homepage by Community♦ 13 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 13 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
how to create form using ui-component? or simple
– Birjitsinh Zala
Jan 17 '18 at 13:11
I have created form using ui-component
– Jaisa
Jan 17 '18 at 13:12
<uiComponent name="vendor_department_addform"/> wait am write full code in ans
– Birjitsinh Zala
Jan 17 '18 at 13:15
add a comment |
how to create form using ui-component? or simple
– Birjitsinh Zala
Jan 17 '18 at 13:11
I have created form using ui-component
– Jaisa
Jan 17 '18 at 13:12
<uiComponent name="vendor_department_addform"/> wait am write full code in ans
– Birjitsinh Zala
Jan 17 '18 at 13:15
how to create form using ui-component? or simple
– Birjitsinh Zala
Jan 17 '18 at 13:11
how to create form using ui-component? or simple
– Birjitsinh Zala
Jan 17 '18 at 13:11
I have created form using ui-component
– Jaisa
Jan 17 '18 at 13:12
I have created form using ui-component
– Jaisa
Jan 17 '18 at 13:12
<uiComponent name="vendor_department_addform"/> wait am write full code in ans
– Birjitsinh Zala
Jan 17 '18 at 13:15
<uiComponent name="vendor_department_addform"/> wait am write full code in ans
– Birjitsinh Zala
Jan 17 '18 at 13:15
add a comment |
1 Answer
1
active
oldest
votes
view/adminhtml/layout/form_index_index.xml
<body>
<referenceContainer name="content">
<uiComponent name="vendor_department_addform"/>
</referenceContainer>
</body>
view/adminhtml/ui_component/vendor_department_addform.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
<item name="deps" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
</item>
<item name="label" xsi:type="string" translate="true">Department Information</item>
<item name="layout" xsi:type="array">
<item name="type" xsi:type="string">tabs</item>
</item>
</argument>
<settings>
<buttons>
<button name="save" class="VendorModuleBlockAdminhtmlAddSaveButton"/>
<button name="reset" class="VendorModuleBlockAdminhtmlAddResetButton"/>
<button name="back" class="VendorModuleBlockAdminhtmlAddBackButton"/>
</buttons>
</settings>
<dataSource name="vendor_department_addform_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">VendorModuleModelDataProvider</argument>
<argument name="name" xsi:type="string">vendor_department_addform_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">department_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
</argument>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
</item>
</argument>
<settings>
<submitUrl path="vendor/department/save"/>
</settings>
</dataSource>
<fieldset name="department_fieldset">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Add new department</item>
</item>
</argument>
<!-- This field represents form id and is hidden -->
<field name="department_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="visible" xsi:type="boolean">false</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
</item>
</argument>
</field>
<!-- This field has data type 'text' and standard 'input' form element and looks like input -->
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Title</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">title</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="identifier">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Identifier</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">identifier</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="description">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Description</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">description</item>
</item>
</argument>
</field>
<field name="sort_order">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Sort order</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">sort_order</item>
<item name="validation" xsi:type="array">
<item name="validate-number" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="status">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">VendorModuleModelDepartmentSourceSelectOption</item>
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Status</item>
<item name="formElement" xsi:type="string">select</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">status</item>
<!-- <item name="default" xsi:type="string">0</item> -->
</item>
</argument>
</field>
</fieldset>
</form>
VendorModuleModelDataProvider.php this is use for form data
namespace VendormoduleModel;
use VendormoduleModelResourceModelDepartmentCollectionFactory;
/**
* Class DataProvider
*/
class DataProvider extends MagentoUiDataProviderAbstractDataProvider
{
/**
* @var CustomModuleModelResourceModelMessagesCollection
*/
protected $collection;
/**
* @var array
*/
protected $loadedData;
/**
* @param string $name
* @param string $primaryFieldName
* @param string $requestFieldName
* @param CollectionFactory $pageCollectionFactory
* @param array $meta
* @param array $data
*/
public function __construct(
$name,
$primaryFieldName,
$requestFieldName,
CollectionFactory $pageCollectionFactory,
array $meta = [],
array $data = []
) {
$this->collection = $pageCollectionFactory->create();
parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
$this->meta = $this->prepareMeta($this->meta);
}
/**
* Prepares Meta
*
* @param array $meta
* @return array
*/
public function prepareMeta(array $meta)
{
return $meta;
}
/**
* Get data
*
* @return array
*/
public function getData()
{
if (isset($this->loadedData)) {
return $this->loadedData;
}
$items = $this->collection->getItems();
/** @var $page CustomModuleModelMessages */
foreach ($items as $page) {
$this->loadedData[$page->getId()] = $page->getData();
}
//echo "<pre>";print_r($this->loadedData);die;
return $this->loadedData;
}
}
Thank you for your response, But my question is I need to add note to the form field. In that note message I need to pass dynamic values or data. For example <notice> Image size should be equal to some(here I need to pass dynamic value) size</notice>
– Jaisa
Jan 17 '18 at 13:24
dataprovider.php handle dynamic data
– Birjitsinh Zala
Jan 17 '18 at 13:27
Please see the updated post
– Jaisa
Jan 17 '18 at 13:30
<item name="component" xsi:type="string">Namespace_ModuleName/js/form/element/options</item> change using js
– Birjitsinh Zala
Jan 17 '18 at 13:48
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f209804%2fhow-do-we-can-give-dynamic-data-for-a-form-field-in-admin-formui-component-in%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
view/adminhtml/layout/form_index_index.xml
<body>
<referenceContainer name="content">
<uiComponent name="vendor_department_addform"/>
</referenceContainer>
</body>
view/adminhtml/ui_component/vendor_department_addform.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
<item name="deps" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
</item>
<item name="label" xsi:type="string" translate="true">Department Information</item>
<item name="layout" xsi:type="array">
<item name="type" xsi:type="string">tabs</item>
</item>
</argument>
<settings>
<buttons>
<button name="save" class="VendorModuleBlockAdminhtmlAddSaveButton"/>
<button name="reset" class="VendorModuleBlockAdminhtmlAddResetButton"/>
<button name="back" class="VendorModuleBlockAdminhtmlAddBackButton"/>
</buttons>
</settings>
<dataSource name="vendor_department_addform_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">VendorModuleModelDataProvider</argument>
<argument name="name" xsi:type="string">vendor_department_addform_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">department_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
</argument>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
</item>
</argument>
<settings>
<submitUrl path="vendor/department/save"/>
</settings>
</dataSource>
<fieldset name="department_fieldset">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Add new department</item>
</item>
</argument>
<!-- This field represents form id and is hidden -->
<field name="department_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="visible" xsi:type="boolean">false</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
</item>
</argument>
</field>
<!-- This field has data type 'text' and standard 'input' form element and looks like input -->
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Title</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">title</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="identifier">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Identifier</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">identifier</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="description">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Description</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">description</item>
</item>
</argument>
</field>
<field name="sort_order">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Sort order</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">sort_order</item>
<item name="validation" xsi:type="array">
<item name="validate-number" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="status">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">VendorModuleModelDepartmentSourceSelectOption</item>
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Status</item>
<item name="formElement" xsi:type="string">select</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">status</item>
<!-- <item name="default" xsi:type="string">0</item> -->
</item>
</argument>
</field>
</fieldset>
</form>
VendorModuleModelDataProvider.php this is use for form data
namespace VendormoduleModel;
use VendormoduleModelResourceModelDepartmentCollectionFactory;
/**
* Class DataProvider
*/
class DataProvider extends MagentoUiDataProviderAbstractDataProvider
{
/**
* @var CustomModuleModelResourceModelMessagesCollection
*/
protected $collection;
/**
* @var array
*/
protected $loadedData;
/**
* @param string $name
* @param string $primaryFieldName
* @param string $requestFieldName
* @param CollectionFactory $pageCollectionFactory
* @param array $meta
* @param array $data
*/
public function __construct(
$name,
$primaryFieldName,
$requestFieldName,
CollectionFactory $pageCollectionFactory,
array $meta = [],
array $data = []
) {
$this->collection = $pageCollectionFactory->create();
parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
$this->meta = $this->prepareMeta($this->meta);
}
/**
* Prepares Meta
*
* @param array $meta
* @return array
*/
public function prepareMeta(array $meta)
{
return $meta;
}
/**
* Get data
*
* @return array
*/
public function getData()
{
if (isset($this->loadedData)) {
return $this->loadedData;
}
$items = $this->collection->getItems();
/** @var $page CustomModuleModelMessages */
foreach ($items as $page) {
$this->loadedData[$page->getId()] = $page->getData();
}
//echo "<pre>";print_r($this->loadedData);die;
return $this->loadedData;
}
}
Thank you for your response, But my question is I need to add note to the form field. In that note message I need to pass dynamic values or data. For example <notice> Image size should be equal to some(here I need to pass dynamic value) size</notice>
– Jaisa
Jan 17 '18 at 13:24
dataprovider.php handle dynamic data
– Birjitsinh Zala
Jan 17 '18 at 13:27
Please see the updated post
– Jaisa
Jan 17 '18 at 13:30
<item name="component" xsi:type="string">Namespace_ModuleName/js/form/element/options</item> change using js
– Birjitsinh Zala
Jan 17 '18 at 13:48
add a comment |
view/adminhtml/layout/form_index_index.xml
<body>
<referenceContainer name="content">
<uiComponent name="vendor_department_addform"/>
</referenceContainer>
</body>
view/adminhtml/ui_component/vendor_department_addform.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
<item name="deps" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
</item>
<item name="label" xsi:type="string" translate="true">Department Information</item>
<item name="layout" xsi:type="array">
<item name="type" xsi:type="string">tabs</item>
</item>
</argument>
<settings>
<buttons>
<button name="save" class="VendorModuleBlockAdminhtmlAddSaveButton"/>
<button name="reset" class="VendorModuleBlockAdminhtmlAddResetButton"/>
<button name="back" class="VendorModuleBlockAdminhtmlAddBackButton"/>
</buttons>
</settings>
<dataSource name="vendor_department_addform_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">VendorModuleModelDataProvider</argument>
<argument name="name" xsi:type="string">vendor_department_addform_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">department_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
</argument>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
</item>
</argument>
<settings>
<submitUrl path="vendor/department/save"/>
</settings>
</dataSource>
<fieldset name="department_fieldset">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Add new department</item>
</item>
</argument>
<!-- This field represents form id and is hidden -->
<field name="department_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="visible" xsi:type="boolean">false</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
</item>
</argument>
</field>
<!-- This field has data type 'text' and standard 'input' form element and looks like input -->
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Title</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">title</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="identifier">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Identifier</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">identifier</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="description">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Description</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">description</item>
</item>
</argument>
</field>
<field name="sort_order">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Sort order</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">sort_order</item>
<item name="validation" xsi:type="array">
<item name="validate-number" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="status">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">VendorModuleModelDepartmentSourceSelectOption</item>
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Status</item>
<item name="formElement" xsi:type="string">select</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">status</item>
<!-- <item name="default" xsi:type="string">0</item> -->
</item>
</argument>
</field>
</fieldset>
</form>
VendorModuleModelDataProvider.php this is use for form data
namespace VendormoduleModel;
use VendormoduleModelResourceModelDepartmentCollectionFactory;
/**
* Class DataProvider
*/
class DataProvider extends MagentoUiDataProviderAbstractDataProvider
{
/**
* @var CustomModuleModelResourceModelMessagesCollection
*/
protected $collection;
/**
* @var array
*/
protected $loadedData;
/**
* @param string $name
* @param string $primaryFieldName
* @param string $requestFieldName
* @param CollectionFactory $pageCollectionFactory
* @param array $meta
* @param array $data
*/
public function __construct(
$name,
$primaryFieldName,
$requestFieldName,
CollectionFactory $pageCollectionFactory,
array $meta = [],
array $data = []
) {
$this->collection = $pageCollectionFactory->create();
parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
$this->meta = $this->prepareMeta($this->meta);
}
/**
* Prepares Meta
*
* @param array $meta
* @return array
*/
public function prepareMeta(array $meta)
{
return $meta;
}
/**
* Get data
*
* @return array
*/
public function getData()
{
if (isset($this->loadedData)) {
return $this->loadedData;
}
$items = $this->collection->getItems();
/** @var $page CustomModuleModelMessages */
foreach ($items as $page) {
$this->loadedData[$page->getId()] = $page->getData();
}
//echo "<pre>";print_r($this->loadedData);die;
return $this->loadedData;
}
}
Thank you for your response, But my question is I need to add note to the form field. In that note message I need to pass dynamic values or data. For example <notice> Image size should be equal to some(here I need to pass dynamic value) size</notice>
– Jaisa
Jan 17 '18 at 13:24
dataprovider.php handle dynamic data
– Birjitsinh Zala
Jan 17 '18 at 13:27
Please see the updated post
– Jaisa
Jan 17 '18 at 13:30
<item name="component" xsi:type="string">Namespace_ModuleName/js/form/element/options</item> change using js
– Birjitsinh Zala
Jan 17 '18 at 13:48
add a comment |
view/adminhtml/layout/form_index_index.xml
<body>
<referenceContainer name="content">
<uiComponent name="vendor_department_addform"/>
</referenceContainer>
</body>
view/adminhtml/ui_component/vendor_department_addform.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
<item name="deps" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
</item>
<item name="label" xsi:type="string" translate="true">Department Information</item>
<item name="layout" xsi:type="array">
<item name="type" xsi:type="string">tabs</item>
</item>
</argument>
<settings>
<buttons>
<button name="save" class="VendorModuleBlockAdminhtmlAddSaveButton"/>
<button name="reset" class="VendorModuleBlockAdminhtmlAddResetButton"/>
<button name="back" class="VendorModuleBlockAdminhtmlAddBackButton"/>
</buttons>
</settings>
<dataSource name="vendor_department_addform_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">VendorModuleModelDataProvider</argument>
<argument name="name" xsi:type="string">vendor_department_addform_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">department_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
</argument>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
</item>
</argument>
<settings>
<submitUrl path="vendor/department/save"/>
</settings>
</dataSource>
<fieldset name="department_fieldset">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Add new department</item>
</item>
</argument>
<!-- This field represents form id and is hidden -->
<field name="department_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="visible" xsi:type="boolean">false</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
</item>
</argument>
</field>
<!-- This field has data type 'text' and standard 'input' form element and looks like input -->
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Title</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">title</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="identifier">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Identifier</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">identifier</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="description">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Description</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">description</item>
</item>
</argument>
</field>
<field name="sort_order">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Sort order</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">sort_order</item>
<item name="validation" xsi:type="array">
<item name="validate-number" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="status">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">VendorModuleModelDepartmentSourceSelectOption</item>
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Status</item>
<item name="formElement" xsi:type="string">select</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">status</item>
<!-- <item name="default" xsi:type="string">0</item> -->
</item>
</argument>
</field>
</fieldset>
</form>
VendorModuleModelDataProvider.php this is use for form data
namespace VendormoduleModel;
use VendormoduleModelResourceModelDepartmentCollectionFactory;
/**
* Class DataProvider
*/
class DataProvider extends MagentoUiDataProviderAbstractDataProvider
{
/**
* @var CustomModuleModelResourceModelMessagesCollection
*/
protected $collection;
/**
* @var array
*/
protected $loadedData;
/**
* @param string $name
* @param string $primaryFieldName
* @param string $requestFieldName
* @param CollectionFactory $pageCollectionFactory
* @param array $meta
* @param array $data
*/
public function __construct(
$name,
$primaryFieldName,
$requestFieldName,
CollectionFactory $pageCollectionFactory,
array $meta = [],
array $data = []
) {
$this->collection = $pageCollectionFactory->create();
parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
$this->meta = $this->prepareMeta($this->meta);
}
/**
* Prepares Meta
*
* @param array $meta
* @return array
*/
public function prepareMeta(array $meta)
{
return $meta;
}
/**
* Get data
*
* @return array
*/
public function getData()
{
if (isset($this->loadedData)) {
return $this->loadedData;
}
$items = $this->collection->getItems();
/** @var $page CustomModuleModelMessages */
foreach ($items as $page) {
$this->loadedData[$page->getId()] = $page->getData();
}
//echo "<pre>";print_r($this->loadedData);die;
return $this->loadedData;
}
}
view/adminhtml/layout/form_index_index.xml
<body>
<referenceContainer name="content">
<uiComponent name="vendor_department_addform"/>
</referenceContainer>
</body>
view/adminhtml/ui_component/vendor_department_addform.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
<item name="deps" xsi:type="string">vendor_department_addform.vendor_department_addform_data_source</item>
</item>
<item name="label" xsi:type="string" translate="true">Department Information</item>
<item name="layout" xsi:type="array">
<item name="type" xsi:type="string">tabs</item>
</item>
</argument>
<settings>
<buttons>
<button name="save" class="VendorModuleBlockAdminhtmlAddSaveButton"/>
<button name="reset" class="VendorModuleBlockAdminhtmlAddResetButton"/>
<button name="back" class="VendorModuleBlockAdminhtmlAddBackButton"/>
</buttons>
</settings>
<dataSource name="vendor_department_addform_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">VendorModuleModelDataProvider</argument>
<argument name="name" xsi:type="string">vendor_department_addform_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">department_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
</argument>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
</item>
</argument>
<settings>
<submitUrl path="vendor/department/save"/>
</settings>
</dataSource>
<fieldset name="department_fieldset">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Add new department</item>
</item>
</argument>
<!-- This field represents form id and is hidden -->
<field name="department_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="visible" xsi:type="boolean">false</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
</item>
</argument>
</field>
<!-- This field has data type 'text' and standard 'input' form element and looks like input -->
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Title</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">title</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="identifier">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Identifier</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">identifier</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="description">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Description</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">description</item>
</item>
</argument>
</field>
<field name="sort_order">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Sort order</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">sort_order</item>
<item name="validation" xsi:type="array">
<item name="validate-number" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="status">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">VendorModuleModelDepartmentSourceSelectOption</item>
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Status</item>
<item name="formElement" xsi:type="string">select</item>
<item name="source" xsi:type="string">jobportal</item>
<item name="dataScope" xsi:type="string">status</item>
<!-- <item name="default" xsi:type="string">0</item> -->
</item>
</argument>
</field>
</fieldset>
</form>
VendorModuleModelDataProvider.php this is use for form data
namespace VendormoduleModel;
use VendormoduleModelResourceModelDepartmentCollectionFactory;
/**
* Class DataProvider
*/
class DataProvider extends MagentoUiDataProviderAbstractDataProvider
{
/**
* @var CustomModuleModelResourceModelMessagesCollection
*/
protected $collection;
/**
* @var array
*/
protected $loadedData;
/**
* @param string $name
* @param string $primaryFieldName
* @param string $requestFieldName
* @param CollectionFactory $pageCollectionFactory
* @param array $meta
* @param array $data
*/
public function __construct(
$name,
$primaryFieldName,
$requestFieldName,
CollectionFactory $pageCollectionFactory,
array $meta = [],
array $data = []
) {
$this->collection = $pageCollectionFactory->create();
parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
$this->meta = $this->prepareMeta($this->meta);
}
/**
* Prepares Meta
*
* @param array $meta
* @return array
*/
public function prepareMeta(array $meta)
{
return $meta;
}
/**
* Get data
*
* @return array
*/
public function getData()
{
if (isset($this->loadedData)) {
return $this->loadedData;
}
$items = $this->collection->getItems();
/** @var $page CustomModuleModelMessages */
foreach ($items as $page) {
$this->loadedData[$page->getId()] = $page->getData();
}
//echo "<pre>";print_r($this->loadedData);die;
return $this->loadedData;
}
}
edited Jan 17 '18 at 13:25
answered Jan 17 '18 at 13:20
Birjitsinh ZalaBirjitsinh Zala
564115
564115
Thank you for your response, But my question is I need to add note to the form field. In that note message I need to pass dynamic values or data. For example <notice> Image size should be equal to some(here I need to pass dynamic value) size</notice>
– Jaisa
Jan 17 '18 at 13:24
dataprovider.php handle dynamic data
– Birjitsinh Zala
Jan 17 '18 at 13:27
Please see the updated post
– Jaisa
Jan 17 '18 at 13:30
<item name="component" xsi:type="string">Namespace_ModuleName/js/form/element/options</item> change using js
– Birjitsinh Zala
Jan 17 '18 at 13:48
add a comment |
Thank you for your response, But my question is I need to add note to the form field. In that note message I need to pass dynamic values or data. For example <notice> Image size should be equal to some(here I need to pass dynamic value) size</notice>
– Jaisa
Jan 17 '18 at 13:24
dataprovider.php handle dynamic data
– Birjitsinh Zala
Jan 17 '18 at 13:27
Please see the updated post
– Jaisa
Jan 17 '18 at 13:30
<item name="component" xsi:type="string">Namespace_ModuleName/js/form/element/options</item> change using js
– Birjitsinh Zala
Jan 17 '18 at 13:48
Thank you for your response, But my question is I need to add note to the form field. In that note message I need to pass dynamic values or data. For example <notice> Image size should be equal to some(here I need to pass dynamic value) size</notice>
– Jaisa
Jan 17 '18 at 13:24
Thank you for your response, But my question is I need to add note to the form field. In that note message I need to pass dynamic values or data. For example <notice> Image size should be equal to some(here I need to pass dynamic value) size</notice>
– Jaisa
Jan 17 '18 at 13:24
dataprovider.php handle dynamic data
– Birjitsinh Zala
Jan 17 '18 at 13:27
dataprovider.php handle dynamic data
– Birjitsinh Zala
Jan 17 '18 at 13:27
Please see the updated post
– Jaisa
Jan 17 '18 at 13:30
Please see the updated post
– Jaisa
Jan 17 '18 at 13:30
<item name="component" xsi:type="string">Namespace_ModuleName/js/form/element/options</item> change using js
– Birjitsinh Zala
Jan 17 '18 at 13:48
<item name="component" xsi:type="string">Namespace_ModuleName/js/form/element/options</item> change using js
– Birjitsinh Zala
Jan 17 '18 at 13:48
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f209804%2fhow-do-we-can-give-dynamic-data-for-a-form-field-in-admin-formui-component-in%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
how to create form using ui-component? or simple
– Birjitsinh Zala
Jan 17 '18 at 13:11
I have created form using ui-component
– Jaisa
Jan 17 '18 at 13:12
<uiComponent name="vendor_department_addform"/> wait am write full code in ans
– Birjitsinh Zala
Jan 17 '18 at 13:15