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?