Form field not be be required for edit

- Bill Lions
- Member | 47
I have a form with a file upload, and all works well for submitting
records.
The form field is a required field for submitting.
However, when using the same form to edit the field, the file field should not
be required
$form->addUpload('hero', 'Hero Image:')
->setHtmlAttribute('class', 'form-control' )
->setRequired('Please select a Hero Image.')
->addRule(Form::IMAGE, 'File must be JPEG, PNG or GIF')
->addRule(Form::MAX_FILE_SIZE, 'Maximum file size is 1Mb.', 1024 * 1024);
The form used the same createComponent, which is reused for submit and
edit.
How do i make this field required for submit, and not-required for edit.

- Ondřej Kubíček
- Member | 494
$upload = $form->addUpload(...)->...
if (!$isEdit) {
$upload->setRequired(...);
}

- Bill Lions
- Member | 47
Ondřej Kubíček wrote:
$upload = $form->addUpload(...)->... if (!$isEdit) { $upload->setRequired(...); }
Yes, but how does the createComponentMyForm() method know if this is edit or
a new post?
Is there something with that can be passed to this method from {control
MyForm} ?

- Ondřej Kubíček
- Member | 494
look at the CD Collection
in DashboardPresenter there are renderAdd and
renderEdit methods

- dakur
- Member | 493
@BillLions There are more ways to achieve that. I would set up a
property of presenter, let's say boolean $formEditMode –
default to false. Then, in actionEdit() just set it to
true and test for $this->formEditMode in
createComponent..() method.
Last edited by dakur (2020-09-30 09:37)