Am un formular personalizat care gestionează două procese diferite după trimitere, să spunem
- Procesul 1: eliminarea tuturor nodurilor articolului
- Procesul 2: importarea nodurilor articol din csv.
Problema este că fiecare proces trebuie să aibă propria bară de progres. Deci, ar trebui să arate astfel:
- Formularul trimis
- Bara de progres pentru procesul 1 începe (0%)
- Bara de progres pentru procesul 1 termină (100%)
- Bara de progres pentru începerea procesului 2 (0%)
- Bara de progres pentru procesul 2 finisaje (100%)
- Redirecționează către formular
Dacă adaug batch_set()
de două ori în manipulatorul de trimitere, ambele procese sunt executate, dar bara de progres apare o singură dată.
// Creați două loturi diferite.
funcție publică statică getBatch1() {
$batch_builder = nou BatchBuilder();
$batch_builder->setTitle('Procesul 1')
$batch_builder->addOperation(
[self::class, 'processCallback1'],
);
returnează $batch_builder->toArray();
}
funcție publică statică getBatch2() {
$batch_builder = nou BatchBuilder();
$batch_builder->setTitle('Procesul 2')
$batch_builder->addOperation(
[self::class, 'processCallback2'],
);
returnează $batch_builder->toArray();
}
// Manager personalizat de trimitere a formularelor.
funcția publică submitForm() {
batch_set(MyBatchClass::getBatch1());
batch_set(MyBatchClass::getBatch2());
}
De fapt arata asa:
- Formularul trimis
- Bara de progres pentru procesul 1 începe (0%)
- Bara de progres pentru procesul 1 se termină (100%) <- procesul 2 este, de asemenea, terminat în fundal
- Redirecționează către formular
Cum pot reporni bara de progres când începe al doilea proces?