Error 500 Internal Server Error

GET https://sac-test.schema31.it/ricerca-enti-accreditati

Forwarded to ErrorController (97dfa2)

Exceptions

An exception has been thrown during the rendering of a template ("Symfony\UX\Map\Renderer\Renderer::fromString(): Argument #1 ($dsn) must be of type string, null given, called in /var/www/vhosts/sac-test/htdocs/sac-unico/vendor/symfony/ux-map/src/Renderer/Renderer.php on line 35") in components/accredited_institution_search.html.twig at line 256.

Exceptions 2

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#640
  -lineno: 256
  -columnno: null
  -rawMessage: "An exception has been thrown during the rendering of a template ("Symfony\UX\Map\Renderer\Renderer::fromString(): Argument #1 ($dsn) must be of type string, null given, called in /var/www/vhosts/sac-test/htdocs/sac-unico/vendor/symfony/ux-map/src/Renderer/Renderer.php on line 35")."
  -source: Twig\Source {#12712
    -code: """
      {% set operatorMode = this.operatorAccess %}\n
      {% set showDocumentsInForce = this.documentsInForceAccess %}\n
      {% set results = this.results %}\n
      {% set selected = this.selectedInstitution %}\n
      {% set AMBITO_FORMAZIONE = constant('App\\Enum\\ContextsAccreditationEnum::FORMAZIONE').value %}\n
      {% set AMBITO_LAVORO = constant('App\\Enum\\ContextsAccreditationEnum::SERVIZI_LAVORO').value %}\n
      {% set AMBITO_ENTI_TITOLATI = constant('App\\Enum\\ContextsAccreditationEnum::ENTI_TITOLATI').value %}\n
      \n
      <div {{ attributes.defaults({ class: 'accredited-search-component' }) }}>\n
          <div class="accredited-search-filters accredited-search-card mb-4">\n
              <div class="accredited-search-card-header d-flex flex-column flex-md-row justify-content-between align-items-md-center gap-3">\n
                  <div>\n
                      <h2 class="h5 mb-1">Filtri di ricerca</h2>\n
                      <div class="accredited-search-mode">\n
                          {{ operatorMode ? 'Vista operatori regionali e Laziocrea' : 'Vista pubblica' }}\n
                      </div>\n
                  </div>\n
                  <button type="button"\n
                          class="btn btn-outline-secondary btn-download btn-sm accredited-search-reset"\n
                          data-action="live#action"\n
                          data-live-action-param="resetFilters">\n
                      <svg class="icon icon-sm me-1" aria-hidden="true">\n
                          <use xlink:href="{{ asset('build/bootstrap-italia/dist/svg/sprites.svg#it-restore') }}"></use>\n
                      </svg>\n
                      Pulisci filtri\n
                  </button>\n
              </div>\n
      \n
              <div class="row g-3 accredited-search-fields">\n
                  <div class="col-12 col-lg-3">\n
                      <label class="form-label" for="accredited-search-ambito">Ambito</label>\n
                      <select id="accredited-search-ambito" class="form-select" data-model="on(change)|ambito">\n
                          <option value="">Tutti gli ambiti</option>\n
                          {% for option in this.accreditationTypeOptions %}\n
                              <option value="{{ option.value }}" {% if this.ambito == option.value %}selected{% endif %}>{{ option.label }}</option>\n
                          {% endfor %}\n
                      </select>\n
                  </div>\n
                  {% if this.ambito == AMBITO_FORMAZIONE %}\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-institution-type">Tipologia ente</label>\n
                          <select id="accredited-search-institution-type" class="form-select" data-model="on(change)|institutionType">\n
                              <option value="">Tutte le tipologie ente</option>\n
                              {% for option in this.institutionTypeOptions %}\n
                                  <option value="{{ option.id }}" {% if this.institutionType == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-tipologia">Tipologia accreditamento</label>\n
                          <select id="accredited-search-tipologia" class="form-select" data-model="on(change)|tipologia">\n
                              <option value="">Tutte le tipologie accreditamento</option>\n
                              {% for option in this.tipologyOptions %}\n
                                  <option value="{{ option.id }}" {% if this.tipologia == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-macro">Macrotipologia</label>\n
                          <select id="accredited-search-macro" class="form-select" data-model="on(change)|macroTipologia">\n
                              <option value="">Tutte le macrotipologie</option>\n
                              {% for option in this.macrotypologyOptions %}\n
                                  <option value="{{ option.id }}" {% if this.macroTipologia == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-special-user">Utenze speciali</label>\n
                          <select id="accredited-search-special-user" class="form-select" data-model="on(change)|specialUser">\n
                              <option value="">Tutte le utenze speciali</option>\n
                              {% for option in this.specialUserOptions %}\n
                                  <option value="{{ option.id }}" {% if this.specialUser == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                  {% elseif this.ambito == AMBITO_LAVORO %}\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-institution-macro-type">Macrotipologia ente</label>\n
                          <select id="accredited-search-institution-macro-type" class="form-select" data-model="on(change)|institutionMacroType">\n
                              <option value="">Tutte le macrotipologie ente</option>\n
                              {% for option in this.institutionMacroTypeOptions %}\n
                                  <option value="{{ option.id }}" {% if this.institutionMacroType == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-institution-type">Tipologia ente</label>\n
                          <select id="accredited-search-institution-type" class="form-select" data-model="on(change)|institutionType">\n
                              <option value="">Tutte le tipologie ente</option>\n
                              {% for option in this.institutionTypeOptions %}\n
                                  <option value="{{ option.id }}" {% if this.institutionType == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-job-service">Servizi obbligatori</label>\n
                          <select id="accredited-search-job-service" class="form-select" data-model="on(change)|jobService">\n
                              <option value="">Tutti i servizi obbligatori</option>\n
                              {% for option in this.jobServiceOptions %}\n
                                  <option value="{{ option.value }}" {% if this.jobService == option.value %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-job-service-specialist">Servizi specialistici</label>\n
                          <select id="accredited-search-job-service-specialist" class="form-select" data-model="on(change)|jobServiceSpecialist">\n
                              <option value="">Tutti i servizi specialistici</option>\n
                              {% for option in this.jobServiceSpecialistOptions %}\n
                                  <option value="{{ option.value }}" {% if this.jobServiceSpecialist == option.value %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                  {% elseif this.ambito == AMBITO_ENTI_TITOLATI %}\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-institution-type">Tipologia ente</label>\n
                          <select id="accredited-search-institution-type" class="form-select" data-model="on(change)|institutionType">\n
                              <option value="">Tutte le tipologie ente</option>\n
                              {% for option in this.institutionTypeOptions %}\n
                                  <option value="{{ option.id }}" {% if this.institutionType == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-titled-macro">Tipologia accreditamento</label>\n
                          <select id="accredited-search-titled-macro" class="form-select" data-model="on(change)|macroTipologia">\n
                              <option value="">Tutte le tipologie accreditamento</option>\n
                              {% for option in this.macrotypologyOptions %}\n
                                  <option value="{{ option.id }}" {% if this.macroTipologia == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                  {% endif %}\n
      \n
                  <div class="col-12 col-lg-{{ operatorMode ? 3 : 4 }}">\n
                      <label class="form-label" for="accredited-search-name">Ragione sociale</label>\n
                      <input id="accredited-search-name"\n
                             class="form-control"\n
                             type="search"\n
                             value="{{ this.ragioneSociale }}"\n
                             data-model="debounce(350)|ragioneSociale">\n
                  </div>\n
      \n
                  {% if operatorMode %}\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-vat">P.IVA</label>\n
                          <input id="accredited-search-vat"\n
                                 class="form-control"\n
                                 type="search"\n
                                 value="{{ this.partitaIva }}"\n
                                 data-model="debounce(350)|partitaIva">\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-fiscal">C.F. ente</label>\n
                          <input id="accredited-search-fiscal"\n
                                 class="form-control"\n
                                 type="search"\n
                                 value="{{ this.codiceFiscale }}"\n
                                 data-model="debounce(350)|codiceFiscale">\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-owner">Cognome legale rappresentante</label>\n
                          <input id="accredited-search-owner"\n
                                 class="form-control"\n
                                 type="search"\n
                                 value="{{ this.cognomeLegaleRappresentante }}"\n
                                 data-model="debounce(350)|cognomeLegaleRappresentante">\n
                      </div>\n
                      <div class="col-12 col-lg-3">\n
                          <label class="form-label" for="accredited-search-status">Stato accreditamento</label>\n
                          <select id="accredited-search-status" class="form-select" data-model="on(change)|statoAccreditamento">\n
                              <option value="">Tutti gli stati</option>\n
                              {% for option in this.applicationStatusOptions %}\n
                                  <option value="{{ option.value }}" {% if this.statoAccreditamento == option.value %}selected{% endif %}>{{ option.label }}</option>\n
                              {% endfor %}\n
                          </select>\n
                      </div>\n
                  {% endif %}\n
      \n
                  <div class="col-12 col-lg-{{ operatorMode ? 6 : 4 }}">\n
                      <label class="form-label" for="accredited-search-address">Indirizzo sede</label>\n
                      <input id="accredited-search-address"\n
                             class="form-control"\n
                             type="search"\n
                             value="{{ this.indirizzoSede }}"\n
                             data-model="debounce(350)|indirizzoSede">\n
                  </div>\n
                  <div class="col-12 col-lg-{{ operatorMode ? 3 : 4 }}">\n
                      <label class="form-label" for="accredited-search-province">Provincia</label>\n
                      <select id="accredited-search-province" class="form-select" data-model="on(change)|provincia">\n
                          <option value="">Tutte le province</option>\n
                          {% for option in this.provinceOptions %}\n
                              <option value="{{ option.id }}" {% if this.provincia == option.id %}selected{% endif %}>{{ option.label }}</option>\n
                          {% endfor %}\n
                      </select>\n
                  </div>\n
              </div>\n
          </div>\n
      \n
          <div class="row g-4">\n
              <div class="col-12 col-xl-4">\n
                  <div class="accredited-search-card accredited-search-results-card overflow-hidden">\n
                      <div class="accredited-search-card-header d-flex justify-content-between align-items-center">\n
                          <h2 class="h5 mb-0">Enti trovati</h2>\n
                          <span class="accredited-search-count">{{ results|length }}</span>\n
                      </div>\n
      \n
                      <div class="accredited-search-results">\n
                          {% if results is empty %}\n
                              <div class="accredited-search-empty">\n
                                  <strong>Nessun risultato</strong>\n
                                  <span>Modifica i filtri per ampliare la ricerca.</span>\n
                              </div>\n
                          {% endif %}\n
      \n
                          {% for institution in results %}\n
                              <button type="button"\n
                                      class="accredited-search-result w-100 text-start {{ selected and selected.id == institution.id ? 'is-selected' : '' }}"\n
                                      data-action="live#action"\n
                                      data-live-action-param="selectInstitution"\n
                                      data-live-id-param="{{ institution.id }}">\n
                                  <span class="d-flex justify-content-between gap-3 align-items-start">\n
                                      <span class="min-w-0">\n
                                          <strong class="accredited-search-result-title">{{ institution.name }}</strong>\n
                                          <span class="accredited-search-contexts">\n
                                              {{ institution.contexts ? institution.contexts|join(', ') : 'Ambito non disponibile' }}\n
                                          </span>\n
                                          {% if operatorMode %}\n
                                              <span class="d-block text-muted small">\n
                                                  P.IVA {{ institution.taxCode ?: 'N/D' }} · C.F. {{ institution.fiscalCode ?: 'N/D' }}\n
                                              </span>\n
                                              <span class="d-block text-muted small">\n
                                                  Legale rappresentante {{ institution.legalOwner ?: 'N/D' }}\n
                                              </span>\n
                                          {% endif %}\n
                                      </span>\n
                                      {% if operatorMode %}\n
                                          <span class="badge {{ institution.statusClass }} accredited-search-status">{{ institution.status }}</span>\n
                                      {% endif %}\n
                                  </span>\n
                              </button>\n
                          {% endfor %}\n
                      </div>\n
                  </div>\n
              </div>\n
      \n
              <div class="col-12 col-xl-8">\n
                  <div class="accredited-search-card accredited-search-map-card mb-4">\n
                      <div class="accredited-search-card-header d-flex justify-content-between align-items-center">\n
                          <h2 class="h5 mb-0">Mappa sedi</h2>\n
                          {% if selected %}\n
                              <span class="accredited-search-count is-muted">{{ selected.offices|length }} sedi</span>\n
                          {% endif %}\n
                      </div>\n
                      <div class="accredited-search-map-frame"\n
                           data-skip-morph>\n
                          {{ ux_map(map, {\n
                              style: 'height: 460px; min-height: 460px; width: 100%;',\n
                              class: 'accredited-search-map'\n
                          }) }}\n
                      </div>\n
                      {% if selected and selected.offices|filter(office => office.coordinates and office.coordinates.source == 'province')|length > 0 %}\n
                          <div class="accredited-search-map-note">\n
                              <span aria-hidden="true">!</span>\n
                              Alcune sedi non hanno coordinate puntuali censite: il marker è stimato all’interno della provincia.\n
                          </div>\n
                      {% elseif not selected %}\n
                          <div class="accredited-search-map-note is-neutral">\n
                              La mappa mostra le sedi degli enti risultanti dalla ricerca. Seleziona un ente per limitarla alle sole sedi dell’ente scelto.\n
                          </div>\n
                      {% endif %}\n
                  </div>\n
      \n
                  {% if selected %}\n
                      <div class="accredited-search-card accredited-search-detail">\n
                          <div class="accredited-search-detail-header d-flex flex-column flex-md-row justify-content-between gap-3">\n
                              <div>\n
                                  <h2 class="h4 mb-1">{{ selected.name }}</h2>\n
                                  <div class="text-muted">{{ selected.contexts ? selected.contexts|join(', ') : 'Ambito non disponibile' }}</div>\n
                              </div>\n
                              <div class="d-flex flex-wrap justify-content-md-end align-items-start gap-2">\n
                                  {% if selected.detailUrl %}\n
                                      <a href="{{ selected.detailUrl }}"\n
                                         class="btn btn-sm btn-outline-primary btn-download">\n
                                          Dettaglio ente\n
                                      </a>\n
                                  {% endif %}\n
                                  {% if showDocumentsInForce and selected.documentsUrl %}\n
                                      <a href="{{ selected.documentsUrl }}"\n
                                         class="btn btn-sm btn-outline-primary btn-download">\n
                                          Documenti in vigenza\n
                                      </a>\n
                                  {% endif %}\n
                                  {% if operatorMode %}\n
                                      <span class="badge {{ selected.statusClass }} accredited-search-detail-status align-self-start">{{ selected.status }}</span>\n
                                  {% endif %}\n
                              </div>\n
                          </div>\n
      \n
                          {% if operatorMode %}\n
                              <div class="row g-3 mb-4">\n
                                  <div class="col-12 col-md-3">\n
                                      <div class="accredited-search-kpi">\n
                                          <span>P.IVA</span>\n
                                          <strong>{{ selected.taxCode ?: 'N/D' }}</strong>\n
                                      </div>\n
                                  </div>\n
                                  <div class="col-12 col-md-3">\n
                                      <div class="accredited-search-kpi">\n
                                          <span>C.F. ente</span>\n
                                          <strong>{{ selected.fiscalCode ?: 'N/D' }}</strong>\n
                                      </div>\n
                                  </div>\n
                                  <div class="col-12 col-md-3">\n
                                      <div class="accredited-search-kpi">\n
                                          <span>Legale rappresentante</span>\n
                                          <strong>{{ selected.contacts.legalOwner ?: 'N/D' }}</strong>\n
                                      </div>\n
                                  </div>\n
                                  <div class="col-12 col-md-3">\n
                                      <div class="accredited-search-kpi">\n
                                          <span>Stato ente</span>\n
                                          <strong>{{ selected.status ?: 'N/D' }}</strong>\n
                                      </div>\n
                                  </div>\n
                              </div>\n
                          {% endif %}\n
      \n
                          <div class="row g-3 mb-4">\n
                              <div class="col-12 col-md-4">\n
                                  <div class="accredited-search-kpi">\n
                                      <span>Email</span>\n
                                      <strong>{{ selected.contacts.email ?: 'N/D' }}</strong>\n
                                  </div>\n
                              </div>\n
                              <div class="col-12 col-md-4">\n
                                  <div class="accredited-search-kpi">\n
                                      <span>PEC</span>\n
                                      <strong>{{ selected.contacts.pec ?: 'N/D' }}</strong>\n
                                  </div>\n
                              </div>\n
                              <div class="col-12 col-md-4">\n
                                  <div class="accredited-search-kpi">\n
                                      <span>Telefono</span>\n
                                      <strong>{{ selected.contacts.phone ?: 'N/D' }}</strong>\n
                                  </div>\n
                              </div>\n
                          </div>\n
      \n
                          <h3 class="accredited-search-section-title">Accreditamenti</h3>\n
                          <div class="accordion" id="selected-accreditations">\n
                              {% for application in selected.applications %}\n
                                  <div class="accordion-item">\n
                                      <h4 class="accordion-header" id="application-{{ application.id }}">\n
                                          <button class="accordion-button {{ loop.first ? '' : 'collapsed' }}"\n
                                                  type="button"\n
                                                  data-bs-toggle="collapse"\n
                                                  data-bs-target="#application-collapse-{{ application.id }}"\n
                                                  aria-expanded="{{ loop.first ? 'true' : 'false' }}"\n
                                                  aria-controls="application-collapse-{{ application.id }}">\n
                                              {{ application.context }}{% if operatorMode %} · {{ application.status }}{% endif %}\n
                                          </button>\n
                                      </h4>\n
                                      <div id="application-collapse-{{ application.id }}"\n
                                           class="accordion-collapse collapse {{ loop.first ? 'show' : '' }}"\n
                                           aria-labelledby="application-{{ application.id }}"\n
                                           data-bs-parent="#selected-accreditations">\n
                                          <div class="accordion-body bg-white-50">\n
                                              <dl class="row mb-0 small">\n
                                                  {% if operatorMode %}\n
                                                      <dt class="col-sm-4">Stato accreditamento</dt>\n
                                                      <dd class="col-sm-8">{{ application.status }}</dd>\n
                                                  {% endif %}\n
                                                  {% if application.contextValue == AMBITO_FORMAZIONE %}\n
                                                      <dt class="col-sm-4">Tipologia ente</dt>\n
                                                      <dd class="col-sm-8">{{ application.institutionType ?: 'N/D' }}</dd>\n
                                                      <dt class="col-sm-4">Tipologia accreditamento</dt>\n
                                                      <dd class="col-sm-8">{{ application.typology ?: 'N/D' }}</dd>\n
                                                      <dt class="col-sm-4">Macrotipologia</dt>\n
                                                      <dd class="col-sm-8">{{ application.macrotypologies ? application.macrotypologies|join(', ') : 'N/D' }}</dd>\n
                                                      <dt class="col-sm-4">Utenze speciali</dt>\n
                                                      <dd class="col-sm-8">{{ application.specialUsers ? application.specialUsers|join(', ') : 'N/D' }}</dd>\n
                                                  {% elseif application.contextValue == AMBITO_LAVORO %}\n
                                                      <dt class="col-sm-4">Macrotipologia ente</dt>\n
                                                      <dd class="col-sm-8">{{ application.institutionMacroType ?: 'N/D' }}</dd>\n
                                                      <dt class="col-sm-4">Tipologia ente</dt>\n
                                                      <dd class="col-sm-8">{{ application.institutionType ?: application.typology ?: 'N/D' }}</dd>\n
                                                      {% set jobAccreditationTypes = [] %}\n
                                                      {% if application.jobServices %}\n
                                                          {% set jobAccreditationTypes = jobAccreditationTypes|merge(['Servizi obbligatori']) %}\n
                                                      {% endif %}\n
                                                      {% if application.jobServiceSpecialists %}\n
                                                          {% set jobAccreditationTypes = jobAccreditationTypes|merge(['Servizi specialistici']) %}\n
                                                      {% endif %}\n
                                                      <dt class="col-sm-4">Tipologia accreditamento</dt>\n
                                                      <dd class="col-sm-8">{{ jobAccreditationTypes ? jobAccreditationTypes|join(', ') : 'N/D' }}</dd>\n
                                                      <dt class="col-sm-4">Servizi obbligatori</dt>\n
                                                      <dd class="col-sm-8">{{ application.jobServices ? application.jobServices|join(', ') : 'N/D' }}</dd>\n
                                                      <dt class="col-sm-4">Servizi specialistici</dt>\n
                                                      <dd class="col-sm-8">{{ application.jobServiceSpecialists ? application.jobServiceSpecialists|join(', ') : 'N/D' }}</dd>\n
                                                  {% elseif application.contextValue == AMBITO_ENTI_TITOLATI %}\n
                                                      <dt class="col-sm-4">Tipologia ente</dt>\n
                                                      <dd class="col-sm-8">{{ application.institutionType ?: 'N/D' }}</dd>\n
                                                      <dt class="col-sm-4">Tipologia accreditamento</dt>\n
                                                      <dd class="col-sm-8">{{ application.macrotypologies ? application.macrotypologies|join(', ') : 'N/D' }}</dd>\n
                                                  {% endif %}\n
                                                  {% set determina = application.latestDetermina|default(null) %}\n
                                                  <dt class="col-sm-4">N. DD accreditamento</dt>\n
                                                  <dd class="col-sm-8">{{ determina and determina.number ? determina.number : 'N/D' }}</dd>\n
                                                  <dt class="col-sm-4">Data DD accreditamento</dt>\n
                                                  <dd class="col-sm-8">{{ determina and determina.date ? determina.date|date('d/m/Y') : 'N/D' }}</dd>\n
                                                  <dt class="col-sm-4">File DD accreditamento</dt>\n
                                                  <dd class="col-sm-8">\n
                                                      {% if determina and determina.downloadUrl %}\n
                                                          <a href="{{ determina.downloadUrl }}" target="_blank" rel="noopener">Scarica determinazione</a>\n
                                                      {% else %}\n
                                                          N/D\n
                                                      {% endif %}\n
                                                  </dd>\n
                                              </dl>\n
                                              {% if application.detailUrl %}\n
                                                  <div class="d-flex justify-content-end mt-3">\n
                                                      <a href="{{ application.detailUrl }}"\n
                                                         class="btn btn-sm btn-outline-primary btn-download">\n
                                                          Dettaglio pratica\n
                                                      </a>\n
                                                  </div>\n
                                              {% endif %}\n
                                          </div>\n
                                      </div>\n
                                  </div>\n
                              {% else %}\n
                                  <div class="text-muted small">Nessun accreditamento visualizzabile.</div>\n
                              {% endfor %}\n
                          </div>\n
      \n
                          {% if selected.variations is not empty %}\n
                              <h3 class="accredited-search-section-title">Variazioni</h3>\n
                              <div class="table-responsive">\n
                                  <table class="table table-sm border-secondary table-striped table-bordered align-middle">\n
                                      <thead class="bg-primary text-white table-group-divider">\n
                                      <tr>\n
                                          <th scope="col">ID pratica</th>\n
                                          <th scope="col">Tipo variazione</th>\n
                                          <th scope="col">Ambito</th>\n
                                          <th scope="col">Determinazione</th>\n
                                          <th class="text-end" scope="col">Azioni</th>\n
                                      </tr>\n
                                      </thead>\n
                                      <tbody class="table-hover">\n
                                      {% for variation in selected.variations %}\n
                                          {% set determina = variation.latestDetermina|default(null) %}\n
                                          <tr>\n
                                              <td>{{ variation.code ?: 'N/D' }}</td>\n
                                              <td>{{ variation.type }}</td>\n
                                              <td>{{ variation.area }}</td>\n
                                              <td>\n
                                                  {{ determina and determina.number ? determina.number : 'N/D' }}\n
                                                  {% if determina and determina.date %} · {{ determina.date|date('d/m/Y') }}{% endif %}\n
                                                  {% if determina and determina.downloadUrl %}\n
                                                      · <a href="{{ determina.downloadUrl }}" target="_blank" rel="noopener">Scarica determinazione</a>\n
                                                  {% endif %}\n
                                              </td>\n
                                              <td class="text-end">\n
                                                  {% if variation.detailUrl %}\n
                                                      <a href="{{ variation.detailUrl }}" class="btn btn-sm btn-outline-primary btn-download">\n
                                                          Dettaglio\n
                                                      </a>\n
                                                  {% endif %}\n
                                              </td>\n
                                          </tr>\n
                                      {% endfor %}\n
                                      </tbody>\n
                                  </table>\n
                              </div>\n
                          {% endif %}\n
      \n
                          {% if selected.maintenances is not empty %}\n
                              <h3 class="accredited-search-section-title">Mantenimenti</h3>\n
                              <div class="table-responsive">\n
                                  <table class="table table-sm border-secondary table-striped table-bordered align-middle">\n
                                      <thead class="bg-primary text-white table-group-divider">\n
                                      <tr>\n
                                          <th scope="col">ID pratica</th>\n
                                          <th scope="col">Tipo</th>\n
                                          <th scope="col">Ambito</th>\n
                                          <th scope="col">Determinazione</th>\n
                                          <th scope="col" class="text-end">Azioni</th>\n
                                      </tr>\n
                                      </thead>\n
                                      <tbody class="table-hover">\n
                                      {% for maintenance in selected.maintenances %}\n
                                          {% set determina = maintenance.latestDetermina|default(null) %}\n
                                          <tr>\n
                                              <td>{{ maintenance.code ?: 'N/D' }}</td>\n
                                              <td>{{ maintenance.type }}</td>\n
                                              <td>{{ maintenance.area }}</td>\n
                                              <td>\n
                                                  {{ determina and determina.number ? determina.number : 'N/D' }}\n
                                                  {% if determina and determina.date %} · {{ determina.date|date('d/m/Y') }}{% endif %}\n
                                                  {% if determina and determina.downloadUrl %}\n
                                                      · <a href="{{ determina.downloadUrl }}" target="_blank" rel="noopener">Scarica determinazione</a>\n
                                                  {% endif %}\n
                                              </td>\n
                                              <td class="text-end">\n
                                                  {% if maintenance.detailUrl %}\n
                                                      <a href="{{ maintenance.detailUrl }}" class="btn btn-sm btn-outline-primary btn-download">\n
                                                          Dettaglio\n
                                                      </a>\n
                                                  {% endif %}\n
                                              </td>\n
                                          </tr>\n
                                      {% endfor %}\n
                                      </tbody>\n
                                  </table>\n
                              </div>\n
                          {% endif %}\n
      \n
                          <h3 class="accredited-search-section-title">Sedi</h3>\n
                          <div class="row g-3">\n
                              {% for office in selected.offices %}\n
                                  <div class="col-12">\n
                                      <div class="accredited-office-item {{ office.isTemporary ? 'is-temporary' : '' }} border rounded-3 p-3">\n
                                          <div class="d-flex flex-column flex-md-row justify-content-between gap-2">\n
                                              <div>\n
                                                  <strong>{{ office.address }}</strong>\n
                                                  {% if office.isTemporary %}\n
                                                      <span class="badge bg-warning text-white ms-2">Sede temporanea</span>\n
                                                  {% endif %}\n
                                                  <div class="text-muted small">\n
                                                      {{ office.city ?: 'Comune N/D' }}{% if office.province %} · {{ office.province }}{% endif %}\n
                                                  </div>\n
                                                  <div class="text-muted small">\n
                                                      {{ office.email ?: 'Email N/D' }} · {{ office.pec ?: 'PEC N/D' }} · {{ office.telephone ?: 'Tel. N/D' }}\n
                                                  </div>\n
                                              </div>\n
                                              {% if operatorMode %}\n
                                                  <div class="text-md-end">\n
                                                      <div class="small text-muted mb-1">{{ office.typeLabels }}</div>\n
                                                      {% for status in office.statuses %}\n
                                                          <span class="badge {{ status.statusClass }} mb-1">\n
                                                              {{ status.context }} · {{ status.status }}\n
                                                          </span>\n
                                                      {% endfor %}\n
                                                  </div>\n
                                              {% endif %}\n
                                          </div>\n
                                      </div>\n
                                  </div>\n
                              {% else %}\n
                                  <div class="col-12 text-muted small">Nessuna sede visualizzabile.</div>\n
                              {% endfor %}\n
                          </div>\n
                      </div>\n
                  {% else %}\n
                      <div class="accredited-search-card p-3 accredited-search-empty-detail">\n
                          <strong>Nessun ente selezionato</strong>\n
                          <span>Seleziona un risultato per visualizzare accreditamenti, contatti e sedi.</span>\n
                      </div>\n
                  {% endif %}\n
              </div>\n
          </div>\n
      </div>\n
      """
    -name: "components/accredited_institution_search.html.twig"
    -path: "/var/www/vhosts/sac-test/htdocs/sac-unico/templates/components/accredited_institution_search.html.twig"
  }
  -phpFile: "/var/www/vhosts/sac-test/htdocs/sac-unico/vendor/twig/twig/src/Template.php"
  -phpLine: 425
}
  1.                         <span class="accredited-search-count is-muted">{{ selected.offices|length }} sedi</span>
  2.                     {% endif %}
  3.                 </div>
  4.                 <div class="accredited-search-map-frame"
  5.                      data-skip-morph>
  6.                     {{ ux_map(map, {
  7.                         style: 'height: 460px; min-height: 460px; width: 100%;',
  8.                         class: 'accredited-search-map'
  9.                     }) }}
  10.                 </div>
  11.                 {% if selected and selected.offices|filter(office => office.coordinates and office.coordinates.source == 'province')|length > 0 %}
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = []): void
  4.     {
  5.         foreach ($this->yield($context, $blocks) as $data) {
  6.             echo $data;
  7.         }
  8.     }
  9.     public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 381)
  1.                 ob_start();
  2.             } else {
  3.                 ob_start(static function () { return ''; });
  4.             }
  5.             try {
  6.                 $this->display($context);
  7.             } catch (\Throwable $e) {
  8.                 while (ob_get_level() > $level) {
  9.                     ob_end_clean();
  10.                 }
  1.         try {
  2.             return $this->twig->loadTemplate(
  3.                 $this->templateClasses[$template = $event->getTemplate()] ??= $this->twig->getTemplateClass($template),
  4.                 $template,
  5.                 $templateIndex,
  6.             )->render($variables);
  7.         } finally {
  8.             $mounted = $this->componentStack->pop();
  9.             $event = new PostRenderEvent($mounted);
  10.             $this->dispatcher->dispatch($event);
  1.     {
  2.         if ($preRendered = $this->preCreateForRender($name, $props)) {
  3.             return $preRendered;
  4.         }
  5.         return $this->render($this->factory->create($name, $props));
  6.     }
  7.     public function render(MountedComponent $mounted): string
  8.     {
  9.         $this->componentStack->push($mounted);
  1.     {
  2.         if ($this->renderers->has($normalized = strtolower($name))) {
  3.             return $this->renderers->get($normalized)->render($props);
  4.         }
  5.         return $this->renderer->createAndRender($name, $props);
  6.     }
  7.     /**
  8.      * @param array<string, mixed> $props
  9.      * @param array<string, mixed> $context
  1.             </a>
  2.         </div>
  3.         ";
  4.         // line 20
  5.         yield (string) $this->env->getRuntime('Symfony\UX\TwigComponent\Twig\ComponentRuntime')->render("AccreditedInstitutionSearch", ["operatorMode" => (isset($context["operatorMode"]) || array_key_exists("operatorMode", $context) ? $context["operatorMode"] : (function () { throw new RuntimeError('Variable "operatorMode" does not exist.', 20, $this->source); })())]);
  6.         yield "
  7.     </section>
  8. ";
  9.         
  10.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> block_content (line 458)
  1.         }
  2.         if (null !== $template) {
  3.             try {
  4.                 $template->ensureSecurityChecked();
  5.                 yield from $template->$block($context, $blocks);
  6.             } catch (Error $e) {
  7.                 if (!$e->getSourceContext()) {
  8.                     $e->setSourceContext($template->getSourceContext());
  9.                 }
  1.         yield "               </turbo-frame>
  2.                <div class=\"d-flex justify-content-between gap-3 align-items-start w-100 h-100\">
  3.                     <div class=\"left-side-main-content flex-grow-1 flex-shrink-1\" style=\"min-width: 0;\">
  4.                          ";
  5.         // line 33
  6.         yield from $this->unwrap()->yieldBlock('content', $context, $blocks);
  7.         // line 34
  8.         yield "                    </div>
  9.                     ";
  10.         // line 35
  11.         if ((CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 35, $this->source); })()), "current_route", [], "method", false, false, false, 35) == "app_home")) {
in vendor/twig/twig/src/Template.php -> doDisplay (line 411)
  1.         $context += $this->env->getGlobals();
  2.         $blocks = array_merge($this->blocks, $blocks);
  3.         try {
  4.             $this->ensureSecurityChecked();
  5.             yield from $this->doDisplay($context, $blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  2.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "accredited_institution_search/index.html.twig"));
  3.         $this->parent = $this->load("layouts/base.html.twig", 1);
  4.         yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  5.         
  6.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  7.         
  8.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> doDisplay (line 411)
  1.         $context += $this->env->getGlobals();
  2.         $blocks = array_merge($this->blocks, $blocks);
  3.         try {
  4.             $this->ensureSecurityChecked();
  5.             yield from $this->doDisplay($context, $blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = []): void
  4.     {
  5.         foreach ($this->yield($context, $blocks) as $data) {
  6.             echo $data;
  7.         }
  8.     }
  9.     public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 381)
  1.                 ob_start();
  2.             } else {
  3.                 ob_start(static function () { return ''; });
  4.             }
  5.             try {
  6.                 $this->display($context);
  7.             } catch (\Throwable $e) {
  8.                 while (ob_get_level() > $level) {
  9.                     ob_end_clean();
  10.                 }
  1.         yield from $this->template->yieldBlock($name, $context);
  2.     }
  3.     public function render(array $context = []): string
  4.     {
  5.         return $this->template->render($context);
  6.     }
  7.     /**
  8.      * @return void
  9.      */
  1.      * @throws SyntaxError  When an error occurred during compilation
  2.      * @throws RuntimeError When an error occurred during rendering
  3.      */
  4.     public function render($name, array $context = []): string
  5.     {
  6.         return $this->load($name)->render($context);
  7.     }
  8.     /**
  9.      * Displays a template.
  10.      *
  1.         if (null !== $block) {
  2.             return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);
  3.         }
  4.         return $this->container->get('twig')->render($view, $parameters);
  5.     }
  6.     private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  7.     {
  8.         $content = $this->doRenderView($view, $block, $parameters, $method);
  1.         return $this->container->get('twig')->render($view, $parameters);
  2.     }
  3.     private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  4.     {
  5.         $content = $this->doRenderView($view, $block, $parameters, $method);
  6.         $response ??= new Response();
  7.         if (200 === $response->getStatusCode()) {
  8.             foreach ($parameters as $v) {
  9.                 if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
  1.      * If an invalid form is found in the list of parameters, a 422 status code is returned.
  2.      * Forms found in parameters are auto-cast to form views.
  3.      */
  4.     protected function render(string $view, array $parameters = [], ?Response $response = null): Response
  5.     {
  6.         return $this->doRender($view, null, $parameters, $response, __FUNCTION__);
  7.     }
  8.     /**
  9.      * Renders a block in a view.
  10.      *
  1.     }
  2.     #[Route('/ricerca-enti-accreditati', name: 'public_accredited_institution_search', methods: ['GET'])]
  3.     public function __invoke(): Response
  4.     {
  5.         return $this->render('accredited_institution_search/index.html.twig', [
  6.             'operatorMode' => $this->isOperator(),
  7.         ]);
  8.     }
  9.     #[Route('/ricerca-enti-accreditati/ente/{id}', name: 'public_accredited_institution_detail', methods: ['GET'])]
  1.         $this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
  2.         $controller = $event->getController();
  3.         $arguments = $event->getArguments();
  4.         // call controller
  5.         $response = $controller(...$arguments);
  6.         // view
  7.         if (!$response instanceof Response) {
  8.             $event = new ViewEvent($this, $request, $type, $response, $event);
  9.             $this->dispatcher->dispatch($event, KernelEvents::VIEW);
  1.         $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2.         $this->requestStack->push($request);
  3.         $response = null;
  4.         try {
  5.             return $response = $this->handleRaw($request, $type);
  6.         } catch (\Throwable $e) {
  7.             if ($e instanceof \Error && !$this->handleAllThrowables) {
  8.                 throw $e;
  9.             }
  1.         if (!$this->handlingHttpCache) {
  2.             $this->resetServices = true;
  3.         }
  4.         try {
  5.             return $this->getHttpKernel()->handle($request, $type, $catch);
  6.         } finally {
  7.             --$this->requestStackSize;
  8.         }
  9.     }
  1.     ) {
  2.     }
  3.     public function run(): int
  4.     {
  5.         $response = $this->kernel->handle($this->request);
  6.         $response->send(false);
  7.         if (\function_exists('fastcgi_finish_request') && !$this->debug) {
  8.             fastcgi_finish_request();
in vendor/autoload_runtime.php -> run (line 32)
  1. $app = $app(...$args);
  2. exit(
  3.     $runtime
  4.         ->getRunner($app)
  5.         ->run()
  6. );
require_once('/var/www/vhosts/sac-test/htdocs/sac-unico/vendor/autoload_runtime.php') in public/index.php (line 5)
  1. <?php
  2. use App\Kernel;
  3. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  4. return function (array $context) {
  5.     return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

TypeError

Symfony\UX\Map\Renderer\Renderer::fromString(): Argument #1 ($dsn) must be of type string, null given, called in /var/www/vhosts/sac-test/htdocs/sac-unico/vendor/symfony/ux-map/src/Renderer/Renderer.php on line 35

  1.         }
  2.         return new Renderers($renderers);
  3.     }
  4.     public function fromString(#[\SensitiveParameter] string $dsn): RendererInterface
  5.     {
  6.         return $this->fromDsnObject(new Dsn($dsn));
  7.     }
  8.     public function fromDsnObject(Dsn $dsn): RendererInterface
  1.     public function fromStrings(#[\SensitiveParameter] array $dsns): Renderers
  2.     {
  3.         $renderers = [];
  4.         foreach ($dsns as $name => $dsn) {
  5.             $renderers[$name] = $this->fromString($dsn);
  6.         }
  7.         return new Renderers($renderers);
  8.     }
  1.         include_once \dirname(__DIR__, 4).'/vendor/symfony/ux-map/src/Renderer/Renderers.php';
  2.         include_once \dirname(__DIR__, 4).'/vendor/symfony/ux-map/src/Renderer/Renderer.php';
  3.         $instance = new \Symfony\UX\Map\Twig\MapRuntime((new \Symfony\UX\Map\Renderer\Renderer(new RewindableGenerator(function () use ($container) {
  4.             yield 0 => ($container->privates['ux_map.renderer_factory.leaflet'] ?? $container->load('getUxMap_RendererFactory_LeafletService'));
  5.         }, 1)))->fromStrings(['default' => $container->getEnv('resolve:default::UX_MAP_DSN')]));
  6.         if (isset($container->privates['ux_map.twig_runtime'])) {
  7.             return $container->privates['ux_map.twig_runtime'];
  8.         }
  1.             $file .= '.php';
  2.         }
  3.         $service = require $this->containerDir.\DIRECTORY_SEPARATOR.$file;
  4.         return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service;
  5.     }
  6.     protected function createProxy($class, \Closure $factory)
  7.     {
  8.         class_exists($class, false) || require __DIR__.'/'.$class.'.php';
  1.         }
  2.         if (null === $method) {
  3.             return false !== $registry ? $this->{$registry}[$id] ?? null : null;
  4.         }
  5.         if (false !== $registry) {
  6.             return $this->{$registry}[$id] ??= $load ? $this->load($method) : $this->{$method}($this);
  7.         }
  8.         if (!$load) {
  9.             return $this->{$method}($this);
  10.         }
  1.     public function get(string $id): mixed
  2.     {
  3.         return match (\count($this->serviceMap[$id] ?? [])) {
  4.             0 => parent::get($id),
  5.             1 => $this->serviceMap[$id][0],
  6.             default => ($this->factory)(...$this->serviceMap[$id]),
  7.         };
  8.     }
  9.     public function getProvidedServices(): array
  10.     {
  1.     ) {
  2.     }
  3.     public function load(string $class)
  4.     {
  5.         return $this->container->has($class) ? $this->container->get($class) : null;
  6.     }
  7. }
  1.         if (isset($this->runtimes[$class])) {
  2.             return $this->runtimes[$class];
  3.         }
  4.         foreach ($this->runtimeLoaders as $loader) {
  5.             if (null !== $runtime = $loader->load($class)) {
  6.                 return $this->runtimes[$class] = $runtime;
  7.             }
  8.         }
  9.         if (null !== $runtime = $this->defaultRuntimeLoader->load($class)) {
  1.         yield "                </div>
  2.                 <div class=\"accredited-search-map-frame\"
  3.                      data-skip-morph>
  4.                     ";
  5.         // line 256
  6.         yield (string) $this->env->getRuntime('Symfony\UX\Map\Twig\MapRuntime')->renderMap((isset($context["map"]) || array_key_exists("map", $context) ? $context["map"] : (function () { throw new RuntimeError('Variable "map" does not exist.', 256, $this->source); })()), ["style" => "height: 460px; min-height: 460px; width: 100%;", "class" => "accredited-search-map"]);
  7.         // line 259
  8.         yield "
  9.                 </div>
  10.                 ";
  11.         // line 261
in vendor/twig/twig/src/Template.php -> doDisplay (line 411)
  1.         $context += $this->env->getGlobals();
  2.         $blocks = array_merge($this->blocks, $blocks);
  3.         try {
  4.             $this->ensureSecurityChecked();
  5.             yield from $this->doDisplay($context, $blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = []): void
  4.     {
  5.         foreach ($this->yield($context, $blocks) as $data) {
  6.             echo $data;
  7.         }
  8.     }
  9.     public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 381)
  1.                 ob_start();
  2.             } else {
  3.                 ob_start(static function () { return ''; });
  4.             }
  5.             try {
  6.                 $this->display($context);
  7.             } catch (\Throwable $e) {
  8.                 while (ob_get_level() > $level) {
  9.                     ob_end_clean();
  10.                 }
  1.         try {
  2.             return $this->twig->loadTemplate(
  3.                 $this->templateClasses[$template = $event->getTemplate()] ??= $this->twig->getTemplateClass($template),
  4.                 $template,
  5.                 $templateIndex,
  6.             )->render($variables);
  7.         } finally {
  8.             $mounted = $this->componentStack->pop();
  9.             $event = new PostRenderEvent($mounted);
  10.             $this->dispatcher->dispatch($event);
  1.     {
  2.         if ($preRendered = $this->preCreateForRender($name, $props)) {
  3.             return $preRendered;
  4.         }
  5.         return $this->render($this->factory->create($name, $props));
  6.     }
  7.     public function render(MountedComponent $mounted): string
  8.     {
  9.         $this->componentStack->push($mounted);
  1.     {
  2.         if ($this->renderers->has($normalized = strtolower($name))) {
  3.             return $this->renderers->get($normalized)->render($props);
  4.         }
  5.         return $this->renderer->createAndRender($name, $props);
  6.     }
  7.     /**
  8.      * @param array<string, mixed> $props
  9.      * @param array<string, mixed> $context
  1.             </a>
  2.         </div>
  3.         ";
  4.         // line 20
  5.         yield (string) $this->env->getRuntime('Symfony\UX\TwigComponent\Twig\ComponentRuntime')->render("AccreditedInstitutionSearch", ["operatorMode" => (isset($context["operatorMode"]) || array_key_exists("operatorMode", $context) ? $context["operatorMode"] : (function () { throw new RuntimeError('Variable "operatorMode" does not exist.', 20, $this->source); })())]);
  6.         yield "
  7.     </section>
  8. ";
  9.         
  10.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> block_content (line 458)
  1.         }
  2.         if (null !== $template) {
  3.             try {
  4.                 $template->ensureSecurityChecked();
  5.                 yield from $template->$block($context, $blocks);
  6.             } catch (Error $e) {
  7.                 if (!$e->getSourceContext()) {
  8.                     $e->setSourceContext($template->getSourceContext());
  9.                 }
  1.         yield "               </turbo-frame>
  2.                <div class=\"d-flex justify-content-between gap-3 align-items-start w-100 h-100\">
  3.                     <div class=\"left-side-main-content flex-grow-1 flex-shrink-1\" style=\"min-width: 0;\">
  4.                          ";
  5.         // line 33
  6.         yield from $this->unwrap()->yieldBlock('content', $context, $blocks);
  7.         // line 34
  8.         yield "                    </div>
  9.                     ";
  10.         // line 35
  11.         if ((CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 35, $this->source); })()), "current_route", [], "method", false, false, false, 35) == "app_home")) {
in vendor/twig/twig/src/Template.php -> doDisplay (line 411)
  1.         $context += $this->env->getGlobals();
  2.         $blocks = array_merge($this->blocks, $blocks);
  3.         try {
  4.             $this->ensureSecurityChecked();
  5.             yield from $this->doDisplay($context, $blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  2.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "accredited_institution_search/index.html.twig"));
  3.         $this->parent = $this->load("layouts/base.html.twig", 1);
  4.         yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  5.         
  6.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  7.         
  8.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> doDisplay (line 411)
  1.         $context += $this->env->getGlobals();
  2.         $blocks = array_merge($this->blocks, $blocks);
  3.         try {
  4.             $this->ensureSecurityChecked();
  5.             yield from $this->doDisplay($context, $blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = []): void
  4.     {
  5.         foreach ($this->yield($context, $blocks) as $data) {
  6.             echo $data;
  7.         }
  8.     }
  9.     public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 381)
  1.                 ob_start();
  2.             } else {
  3.                 ob_start(static function () { return ''; });
  4.             }
  5.             try {
  6.                 $this->display($context);
  7.             } catch (\Throwable $e) {
  8.                 while (ob_get_level() > $level) {
  9.                     ob_end_clean();
  10.                 }
  1.         yield from $this->template->yieldBlock($name, $context);
  2.     }
  3.     public function render(array $context = []): string
  4.     {
  5.         return $this->template->render($context);
  6.     }
  7.     /**
  8.      * @return void
  9.      */
  1.      * @throws SyntaxError  When an error occurred during compilation
  2.      * @throws RuntimeError When an error occurred during rendering
  3.      */
  4.     public function render($name, array $context = []): string
  5.     {
  6.         return $this->load($name)->render($context);
  7.     }
  8.     /**
  9.      * Displays a template.
  10.      *
  1.         if (null !== $block) {
  2.             return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);
  3.         }
  4.         return $this->container->get('twig')->render($view, $parameters);
  5.     }
  6.     private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  7.     {
  8.         $content = $this->doRenderView($view, $block, $parameters, $method);
  1.         return $this->container->get('twig')->render($view, $parameters);
  2.     }
  3.     private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  4.     {
  5.         $content = $this->doRenderView($view, $block, $parameters, $method);
  6.         $response ??= new Response();
  7.         if (200 === $response->getStatusCode()) {
  8.             foreach ($parameters as $v) {
  9.                 if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
  1.      * If an invalid form is found in the list of parameters, a 422 status code is returned.
  2.      * Forms found in parameters are auto-cast to form views.
  3.      */
  4.     protected function render(string $view, array $parameters = [], ?Response $response = null): Response
  5.     {
  6.         return $this->doRender($view, null, $parameters, $response, __FUNCTION__);
  7.     }
  8.     /**
  9.      * Renders a block in a view.
  10.      *
  1.     }
  2.     #[Route('/ricerca-enti-accreditati', name: 'public_accredited_institution_search', methods: ['GET'])]
  3.     public function __invoke(): Response
  4.     {
  5.         return $this->render('accredited_institution_search/index.html.twig', [
  6.             'operatorMode' => $this->isOperator(),
  7.         ]);
  8.     }
  9.     #[Route('/ricerca-enti-accreditati/ente/{id}', name: 'public_accredited_institution_detail', methods: ['GET'])]
  1.         $this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
  2.         $controller = $event->getController();
  3.         $arguments = $event->getArguments();
  4.         // call controller
  5.         $response = $controller(...$arguments);
  6.         // view
  7.         if (!$response instanceof Response) {
  8.             $event = new ViewEvent($this, $request, $type, $response, $event);
  9.             $this->dispatcher->dispatch($event, KernelEvents::VIEW);
  1.         $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2.         $this->requestStack->push($request);
  3.         $response = null;
  4.         try {
  5.             return $response = $this->handleRaw($request, $type);
  6.         } catch (\Throwable $e) {
  7.             if ($e instanceof \Error && !$this->handleAllThrowables) {
  8.                 throw $e;
  9.             }
  1.         if (!$this->handlingHttpCache) {
  2.             $this->resetServices = true;
  3.         }
  4.         try {
  5.             return $this->getHttpKernel()->handle($request, $type, $catch);
  6.         } finally {
  7.             --$this->requestStackSize;
  8.         }
  9.     }
  1.     ) {
  2.     }
  3.     public function run(): int
  4.     {
  5.         $response = $this->kernel->handle($this->request);
  6.         $response->send(false);
  7.         if (\function_exists('fastcgi_finish_request') && !$this->debug) {
  8.             fastcgi_finish_request();
in vendor/autoload_runtime.php -> run (line 32)
  1. $app = $app(...$args);
  2. exit(
  3.     $runtime
  4.         ->getRunner($app)
  5.         ->run()
  6. );
require_once('/var/www/vhosts/sac-test/htdocs/sac-unico/vendor/autoload_runtime.php') in public/index.php (line 5)
  1. <?php
  2. use App\Kernel;
  3. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  4. return function (array $context) {
  5.     return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

Logs

Level Channel Message
INFO 11:17:22 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "93adb6"
    },
    "request_uri": "https://sac-test.schema31.it/_profiler/93adb6",
    "method": "GET"
}

Stack Traces 2

[2/2] RuntimeError
Twig\Error\RuntimeError:
An exception has been thrown during the rendering of a template ("Symfony\UX\Map\Renderer\Renderer::fromString(): Argument #1 ($dsn) must be of type string, null given, called in /var/www/vhosts/sac-test/htdocs/sac-unico/vendor/symfony/ux-map/src/Renderer/Renderer.php on line 35") in "components/accredited_institution_search.html.twig" at line 256.

  at templates/components/accredited_institution_search.html.twig:256
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:366)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:381)
  at Twig\Template->render()
     (vendor/symfony/ux-twig-component/src/ComponentRenderer.php:77)
  at Symfony\UX\TwigComponent\ComponentRenderer->render()
     (vendor/symfony/ux-twig-component/src/ComponentRenderer.php:56)
  at Symfony\UX\TwigComponent\ComponentRenderer->createAndRender()
     (vendor/symfony/ux-twig-component/src/Twig/ComponentRuntime.php:51)
  at Symfony\UX\TwigComponent\Twig\ComponentRuntime->render()
     (var/cache/dev/twig/e3/e399b215afff9cdbd05587e54ed1665a.php:120)
  at __TwigTemplate_8c9976bb9bc5c49894728bac059aec5f->block_content()
     (vendor/twig/twig/src/Template.php:458)
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/b4/b4524f4aebc0f0d304e47532decafda1.php:105)
  at __TwigTemplate_273e74c57071d1b0ff3d5ef8c5afa2d1->doDisplay()
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield()
     (var/cache/dev/twig/e3/e399b215afff9cdbd05587e54ed1665a.php:55)
  at __TwigTemplate_8c9976bb9bc5c49894728bac059aec5f->doDisplay()
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:366)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:381)
  at Twig\Template->render()
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render()
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:467)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:472)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:284)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
     (src/Controller/PublicAccreditedInstitutionSearchController.php:39)
  at App\Controller\PublicAccreditedInstitutionSearchController->__invoke()
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:193)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:34)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:32)
  at require_once('/var/www/vhosts/sac-test/htdocs/sac-unico/vendor/autoload_runtime.php')
     (public/index.php:5)                
[1/2] TypeError
TypeError:
Symfony\UX\Map\Renderer\Renderer::fromString(): Argument #1 ($dsn) must be of type string, null given, called in /var/www/vhosts/sac-test/htdocs/sac-unico/vendor/symfony/ux-map/src/Renderer/Renderer.php on line 35

  at vendor/symfony/ux-map/src/Renderer/Renderer.php:41
  at Symfony\UX\Map\Renderer\Renderer->fromString()
     (vendor/symfony/ux-map/src/Renderer/Renderer.php:35)
  at Symfony\UX\Map\Renderer\Renderer->fromStrings()
     (var/cache/dev/ContainerPOqxBzK/getUxMap_TwigRuntimeService.php:29)
  at ContainerPOqxBzK\getUxMap_TwigRuntimeService::do()
     (var/cache/dev/ContainerPOqxBzK/App_KernelDevDebugContainer.php:877)
  at ContainerPOqxBzK\App_KernelDevDebugContainer->load()
     (vendor/symfony/dependency-injection/Container.php:399)
  at Symfony\Component\DependencyInjection\Container->getService()
     (vendor/symfony/dependency-injection/Argument/ServiceLocator.php:36)
  at Symfony\Component\DependencyInjection\Argument\ServiceLocator->get()
     (vendor/twig/twig/src/RuntimeLoader/ContainerRuntimeLoader.php:33)
  at Twig\RuntimeLoader\ContainerRuntimeLoader->load()
     (vendor/twig/twig/src/Environment.php:672)
  at Twig\Environment->getRuntime()
     (var/cache/dev/twig/71/712911300e8ea1c198f5be11b0d8c685.php:669)
  at __TwigTemplate_6297cc1a38f037bd3bcee1e4408f8a74->doDisplay()
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:366)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:381)
  at Twig\Template->render()
     (vendor/symfony/ux-twig-component/src/ComponentRenderer.php:77)
  at Symfony\UX\TwigComponent\ComponentRenderer->render()
     (vendor/symfony/ux-twig-component/src/ComponentRenderer.php:56)
  at Symfony\UX\TwigComponent\ComponentRenderer->createAndRender()
     (vendor/symfony/ux-twig-component/src/Twig/ComponentRuntime.php:51)
  at Symfony\UX\TwigComponent\Twig\ComponentRuntime->render()
     (var/cache/dev/twig/e3/e399b215afff9cdbd05587e54ed1665a.php:120)
  at __TwigTemplate_8c9976bb9bc5c49894728bac059aec5f->block_content()
     (vendor/twig/twig/src/Template.php:458)
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/b4/b4524f4aebc0f0d304e47532decafda1.php:105)
  at __TwigTemplate_273e74c57071d1b0ff3d5ef8c5afa2d1->doDisplay()
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield()
     (var/cache/dev/twig/e3/e399b215afff9cdbd05587e54ed1665a.php:55)
  at __TwigTemplate_8c9976bb9bc5c49894728bac059aec5f->doDisplay()
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:366)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:381)
  at Twig\Template->render()
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render()
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:467)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:472)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:284)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
     (src/Controller/PublicAccreditedInstitutionSearchController.php:39)
  at App\Controller\PublicAccreditedInstitutionSearchController->__invoke()
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:193)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:34)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:32)
  at require_once('/var/www/vhosts/sac-test/htdocs/sac-unico/vendor/autoload_runtime.php')
     (public/index.php:5)