can i set the repeater widget to auto load when the form open?
it has max item property, can it auto load to max item number
so user dont need to hit the prompt button
re-updated
this my fields.yaml
fields:
nowarta:
label: 'No. Warta'
oc.commentPosition: ''
span: auto
placeholder: 'format penulisan ''No. 34 Tahun XIX'''
type: text
tanggal:
label: Tanggal
oc.commentPosition: ''
mode: date
format: 'd - F - Y'
span: right
type: datepicker
ignoreTimezone: false
renungan:
label: 'Renungan Mingguan'
oc.commentPosition: ''
span: full
type: section
renungan[judul]:
label: 'Judul Renungan'
oc.commentPosition: ''
span: storm
type: text
cssClass: 'col-sm-6 col-sm-push-0'
renungan[bahanbaca]:
label: 'Bahan Bacaan'
oc.commentPosition: ''
span: storm
type: text
cssClass: col-sm-6
renungan[isi]:
label: Renungan
oc.commentPosition: ''
span: storm
cssClass: 'col-sm-12 col-sm-push-0'
type: richeditor
size: huge
tabs:
fields:
temakebum:
label: 'Kebaktian Umum'
oc.commentPosition: ''
span: full
type: section
tab: 'Kebaktian Umum & Komisi'
temakebum[tema]:
tab: 'Kebaktian Umum & Komisi'
label: Tema
oc.commentPosition: ''
span: storm
cssClass: col-sm-11
type: text
temakebum[bacaan]:
label: 'Bahan Bacaan'
oc.commentPosition: ''
span: storm
cssClass: col-sm-6
type: text
tab: 'Kebaktian Umum & Komisi'
temakebum[pujian]:
label: Pujian
oc.commentPosition: ''
span: storm
cssClass: col-sm-6
type: text
tab: 'Kebaktian Umum & Komisi'
kebum:
label: ''
oc.commentPosition: ''
prompt: 'Tambah Data'
maxItems: '3'
span: full
type: repeater
tab: 'Kebaktian Umum & Komisi'
form:
fields:
jeniskeb:
label: 'Jenis Kebaktian'
oc.commentPosition: ''
span: storm
cssClass: col-sm-4
type: dropdown
options: jenisKeb
khotbah:
label: Pengkhotbah
oc.commentPosition: ''
span: storm
cssClass: col-sm-4
placeholder: ''
type: text
dd($form->fields)
array:6 [▼
"nowarta" => array:5 [▶]
"tanggal" => array:7 [▶]
"renungan" => array:4 [▶]
"renungan[judul]" => array:5 [▶]
"renungan[bahanbaca]" => array:5 [▶]
"renungan[isi]" => array:6 [▶]
]
and this what i have done in controller as you want it to be..
class WartaRutin extends Controller
{
public $implement = ['Backend\Behaviors\ListController','Backend\Behaviors\FormController','Backend\Behaviors\ReorderController' ];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $reorderConfig = 'config_reorder.yaml';
public function __construct()
{
parent::__construct();
BackendMenu::setContext('Mismaiti.MyWarta', 'main-menu-item', 'side-menu-rutin');
}
public function formExtendFieldsBefore($form) {
// we are checking we are creating record or updating
// or even we can use $form->context here but I used $model->id
// if $form->context == 'update'
// if $form->context == 'create'
if(is_null($form->model->id)) {
// create time
$iteration = $form->fields['kebum']['maxItems'];
if(is_numeric($iteration) && $iteration > 0) {
$emptyFields = [];
while($iteration > 0) {
$emptyFields[] = ['jeniskeb' => ''];
$iteration--;
}
$form->model->kebum = $emptyFields;
}
}
}
}
and it return an error when i tried to execute-- i have replace all repeater_data to kebum
"Undefined index: kebum" on line 30 of C:\xampp\htdocs\mywarta\plugins\mismaiti\mywarta\controllers\WartaRutin.php
am i missing something here..?
hmm, we can use
one trick, that as you may only need this atcreate timeor may be you can extend it atupdate time as well,I used field
repeater_datayou can replace it with your fieldfieldinside your
controlleryou need to add thismethod and codeThere is 2 scenarios
create timeandupdate timeWhen user is creating record we will add
dummy fieldsso repeater will show them as they arealready thereand it is done usingmaxItems propertyof thatfield so its fully dynamic, now user don't need to press that button.Now for
2nd scenariowe have else condition if you wish you can add some logic and do your stuff there, Suppose user may add only 2 records at a time so next time we need to add3 dummy fields(2 filled + 3 dummy = total 5 as maxItem) so you cancalculate thereandadd it from else part.I hope this will help you, If you find any difficulties please comment.