Всем привет, ребят, подскажи кто сталкивался, не могу корректно решить

проблему с ActiveForm который рендерится на странице в цикле во множество экземпляров. Проблемы 2.
1) id не уникальный у полей
2) валидаторы которые завязаны на данных из других полей юзают за основу поля из формы отрендеренной на первой итерации, вместо того чтобы юзать поля со своей формы.
Понимаю, что первое можно просто велосипедом сделать указав всем полям руками уникальные id, но наверняка есть способ решить обе проблемы указав где-то какое-то одно свойство при инициализации)
Вот такая конструкция:
<?php $k = 0;foreach ($employeesModels as $employeeModel) { ++$k;?>
<div class="private-office__desc block__title">
<span><?= $k ?>.</span> <?= $employeeModel->username ?>
</div>
<?php $editEmployeeForm = ActiveForm::begin(['id' => 'employee-' . $k . '-form']); ?>
<?= $editEmployeeForm->field($employeeModel, 'id')->hiddenInput()->label(false); ?>
<div class="private-office__input">
<div class="private-office__input-wrap body__input">
<p>Username</p>
<div class="form-group field-profileform-username required">
<?= $editEmployeeForm->field($employeeModel, 'username')
->textInput(['readonly' => true, 'maxlength' => true, "class" => "form-control custom-input"])
->label(false);
?>
<p class="help-block help-block-error"></p>
</div>
</div>
<div class="private-office__input-wrap body__input">
<p>Hasło</p>
<div class="form-group field-profileform-email required">
<?= $editEmployeeForm->field($employeeModel, 'password')
->passwordInput(['readonly' => true, 'maxlength' => true, 'class' => 'form-control custom-input'])
->label(false);
?>
<p class="help-block help-block-error"></p>
</div>
</div>
<div class="private-office__input-wrap body__input">
<p>Powtórz hasło</p>
<div class="form-group field-profileform-email required">
<?= $editEmployeeForm->field($employeeModel, 'password_repeat')
->passwordInput(['readonly' => true, 'maxlength' => true, 'class' => 'form-control custom-input'])
->label(false);
?>
<p class="help-block help-block-error"></p>
</div>
</div>
</div>
<div class="block__btns">
<div class="simple-btn2 btn block__btn concealer__hide">
<?= Html::submitButton('Zapisz') ?>
</div>
</div>
<?php ActiveForm::end(); ?>
<?php } ?>

3 ответов

6 просмотров

pastebin

Alex- Автор вопроса

действительно)

Alex- Автор вопроса

спасибо, подправил

Похожие вопросы

Обсуждают сегодня

Чет мне ссыкотно опять Rainlab.User в проект ставить. Кто знает, опять наотъебись все сделали или после обнов пользоваться можно?
Black Cat
10
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
это группа токсиков или тех кто помогает?
Ибрагим
9
Можете помочь с этим, я тут использую Джанго как ОРМ для бота, но бот запускать не хочет, уже всезде перерыл не могу решить, может кто то сталкивался?
Ибрагим
4
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
всем привет. подскажите. сделал политику, он верхнеуровневая. раздал права только на TEST2 (полные). вопрос - можно ли сделать так, чтобы был доступен только TEST2, а остально...
Андрей Сергеев
5
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Вы когда из вики.... копировали, не обратили внимание на года(ы)? 😉 ==== если до 1917 года в Москве было около 15 000 легковых извозчиков, то к 1920 году их осталось 5 000, а ...
Igor Mitin
4
Карта сайта