Error 500 Internal Server Error

GET https://swimviz.com/swimmer/details/100

Exceptions

Impossible to access an attribute ("lastName") on a null variable in swimmer/details.html.twig at line 6.

Exception

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#2055
  -lineno: 6
  -rawMessage: "Impossible to access an attribute ("lastName") on a null variable."
  -source: Twig\Source {#1933
    -code: """
      {% extends 'base.html.twig' %}\n
      \n
      {% block body %}\n
                      <div>\n
                          <div>\n
                              <h4>{{ swimmer.lastName }} {{ swimmer.firstName }}</h4>\n
                              <h5>{{ swimmer.birthdate|date('Y') }} - {{ swimmer.country.shortName }}</h5>\n
                          </div>\n
                          <div>\n
                              <span style="display: {{ tabRaces|length > 1 ? '' : 'none' }}">Filtrer par course : \n
                                  <select id="selectRace" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% if tabRaces|length > 1 %}\n
          {% for key, race in tabRaces %}\n
                                      <option value="{{ key }}" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ race.resultTypeIds|join(',') }}" data-categories="{{ race.categoryIds|join(',') }}" data-cities="{{ race.cityIds|join(',') }}" data-competitiontypes="{{ race.competitionTypeIds|join(',') }}" data-competitiondisciplines="{{ race.competitionDisciplineIds|join(',') }}" data-poolsizes="{{ race.poolSizeIds|join(',') }}" data-clubs="{{ race.clubIds|join(',') }}">{{ race.name }}</option>\n
          {% endfor %}\n
          {% endif %}\n
                                  </select>\n
                              </span>\n
                              <span style="display: {{ tabResultTypes|length > 1 ? '' : 'none' }}">Filtrer par type de résultat : \n
                                  <select id="selectResultType" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% if tabResultTypes|length > 1 %}\n
          {% for key, resultType in tabResultTypes %}\n
                                      <option value="{{ key }}" data-races="{{ resultType.raceIds|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ resultType.categoryIds|join(',') }}" data-cities="{{ resultType.cityIds|join(',') }}" data-competitiontypes="{{ resultType.competitionTypeIds|join(',') }}" data-competitiondisciplines="{{ resultType.competitionDisciplineIds|join(',') }}" data-poolsizes="{{ resultType.poolSizeIds|join(',') }}" data-clubs="{{ resultType.clubIds|join(',') }}">{{ resultType.name }}</option>\n
          {% endfor %}\n
          {% endif %}\n
                                  </select>\n
                              </span>\n
                              <span style="display: {{ tabCategories|length > 1 ? '' : 'none' }}">Filtrer par catégorie : \n
                                  <select id="selectCategory" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% if tabCategories|length > 1 %}\n
          {% for key, category in tabCategories %}\n
                                      <option value="{{ key }}" data-races="{{ category.raceIds|join(',') }}" data-resulttypes="{{ category.resultTypeIds|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ category.cityIds|join(',') }}" data-competitiontypes="{{ category.competitionTypeIds|join(',') }}" data-competitiondisciplines="{{ category.competitionDisciplineIds|join(',') }}" data-poolsizes="{{ category.poolSizeIds|join(',') }}" data-clubs="{{ category.clubIds|join(',') }}">{{ category.name }}</option>\n
          {% endfor %}\n
          {% endif %}\n
                                  </select>\n
                              </span>\n
                              <span style="display: {{ tabCities|length > 1 ? '' : 'none' }}">Filtrer par ville : \n
                                  <select id="selectCity" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% if tabCities|length > 1 %}\n
          {% for key, city in tabCities %}\n
                                      <option value="{{ key }}" data-races="{{ city.raceIds|join(',') }}" data-resulttypes="{{ city.resultTypeIds|join(',') }}" data-categories="{{ city.categoryIds|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ city.competitionTypeIds|join(',') }}" data-competitiondisciplines="{{ city.competitionDisciplineIds|join(',') }}" data-poolsizes="{{ city.poolSizeIds|join(',') }}" data-clubs="{{ city.clubIds|join(',') }}">{{ city.name }}</option>\n
          {% endfor %}\n
          {% endif %}\n
                                  </select>\n
                              </span>\n
                              <span style="display: {{ tabCompetitionTypes|length > 1 ? '' : 'none' }}">Filtrer par type de compétition : \n
                                  <select id="selectCompetitionType" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% if tabCompetitionTypes|length > 1 %}\n
          {% for key, competitionType in tabCompetitionTypes %}\n
                                      <option value="{{ key }}" data-races="{{ competitionType.raceIds|join(',') }}" data-resulttypes="{{ competitionType.resultTypeIds|join(',') }}" data-categories="{{ competitionType.categoryIds|join(',') }}" data-cities="{{ competitionType.cityIds|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ competitionType.competitionDisciplineIds|join(',') }}" data-poolsizes="{{ competitionType.poolSizeIds|join(',') }}" data-clubs="{{ competitionType.clubIds|join(',') }}">{{ competitionType.name }}</option>\n
          {% endfor %}\n
          {% endif %}\n
                                  </select>\n
                              </span>\n
                              <span style="display: {{ tabCompetitionDisciplines|length > 1 ? '' : 'none' }}">Filtrer par discipline : \n
                                  <select id="selectCompetitionDiscipline" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% if tabCompetitionDisciplines|length > 1 %}\n
          {% for key, competitionDiscipline in tabCompetitionDisciplines %}\n
                                      <option value="{{ key }}" data-races="{{ competitionDiscipline.raceIds|join(',') }}" data-resulttypes="{{ competitionDiscipline.resultTypeIds|join(',') }}" data-categories="{{ competitionDiscipline.categoryIds|join(',') }}" data-cities="{{ competitionDiscipline.cityIds|join(',') }}" data-competitiontypes="{{ competitionDiscipline.competitionTypeIds|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ competitionDiscipline.poolSizeIds|join(',') }}" data-clubs="{{ competitionDiscipline.clubIds|join(',') }}">{{ competitionDiscipline.name }}</option>\n
          {% endfor %}\n
          {% endif %}\n
                                  </select>\n
                              </span>\n
                              <span style="display: {{ tabPoolSizes|length > 1 ? '' : 'none' }}">Filtrer par piscine : \n
                                  <select id="selectPoolSize" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% for key, poolSize in tabPoolSizes %}\n
                                      <option value="{{ key }}" data-races="{{ poolSize.raceIds|join(',') }}" data-resulttypes="{{ poolSize.resultTypeIds|join(',') }}" data-categories="{{ poolSize.categoryIds|join(',') }}" data-cities="{{ poolSize.cityIds|join(',') }}" data-competitiontypes="{{ poolSize.competitionTypeIds|join(',') }}" data-competitiondisciplines="{{ poolSize.competitionDisciplineIds|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ poolSize.clubIds|join(',') }}">{{ poolSize.name }}</option>\n
          {% endfor %}\n
                                  </select>\n
                              </span>\n
                              <span style="display: {{ tabClubs|length > 1 ? '' : 'none' }}">Filtrer par club : \n
                                  <select id="selectClub" onChange="Javascript: filter();">\n
                                      <option value="0" data-races="{{ tabRaces|map((value,key) => key)|join(',') }}" data-resulttypes="{{ tabResultTypes|map((value,key) => key)|join(',') }}" data-categories="{{ tabCategories|map((value,key) => key)|join(',') }}" data-cities="{{ tabCities|map((value,key) => key)|join(',') }}" data-competitiontypes="{{ tabCompetitionTypes|map((value,key) => key)|join(',') }}" data-competitiondisciplines="{{ tabCompetitionDisciplines|map((value,key) => key)|join(',') }}" data-poolsizes="{{ tabPoolSizes|map((value,key) => key)|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">Toutes</option>\n
          {% if tabClubs|length > 1 %}\n
          {% for key, club in tabClubs %}\n
                                      <option value="{{ key }}" data-races="{{ club.raceIds|join(',') }}" data-resulttypes="{{ club.resultTypeIds|join(',') }}" data-categories="{{ club.categoryIds|join(',') }}" data-cities="{{ club.cityIds|join(',') }}" data-competitiontypes="{{ club.competitionTypeIds|join(',') }}" data-competitiondisciplines="{{ club.competitionDisciplineIds|join(',') }}" data-poolsizes="{{ club.poolSizeIds|join(',') }}" data-clubs="{{ tabClubs|map((value,key) => key)|join(',') }}">{{ club.name }}</option>\n
          {% endfor %}\n
          {% endif %}\n
                                  </select>\n
                              </span>\n
                              <button onClick="Javascript: unfilter();">Retirer les filtres</button>\n
                          </div>\n
                          <table id="tableResults">\n
          {% for idRace, results in tabResults %}\n
                              <tr data-race="{{ idRace }}" data-resulttype="0" data-category="0" data-city="0" data-competitiontype="0" data-competitiondiscipline="0" data-poolsize="0" data-club="0">\n
                                  <td colspan="9" align="center">{{ tabRaces[idRace].name }}</td>\n
                                  <td style="display: {{ tabRaces[idRace].relay ? 'none' : '' }};"><div class="divCBRace" data-race="{{ idRace }}">Tout sélectionner <input type="checkbox" class="inputRace" data-race="{{ idRace }}" data-resulttype="0" data-category="0" data-city="0" data-competitiontype="0" data-competitiondiscipline="0" data-poolsize="0" data-club="0" data-length="{{ results|length }}" /></div></td>\n
                              </tr>\n
                  {% for result in results %}\n
                              <tr data-race="{{ idRace }}" data-resulttype="{{ result.resultTypeId }}" data-category="{{ result.categoryId }}" data-city="{{ result.cityId }}" data-competitiontype="{{ result.competitionTypeId }}" data-competitiondiscipline="{{ result.competitionDisciplineId }}" data-poolsize="{{ result.poolSizeId }}" data-club="{{ result.clubId }}">\n
                                  <td>{{ result.dateRace|date('d/m/Y') }}</td>\n
                                  <td>{{ result.competitionName }} - {{ result.poolSizeName }}</td>\n
                                  <td>{{ result.categoryName }}</td>\n
                                  <td>{{ result.heatLane }}</td>\n
                                  <td>{{ result.clubCountry }}</td>\n
      {% if result.disqualification %}\n
                                  <td>{{ result.disqualification }}</td>\n
      {% else %}\n
                                  <td>\n
                                      <div class="tdTooltip" data-tooltip="{{ result.tabSplits|splits_formatted(result.poolSize) }}">{{ result.finalTime|time_conversion }}</div>\n
                                      <div><a href="{{ path('competition_result_splits_form', {'id': result.id, 'typeDisplay': 'details', 'controller': 'swimmer'}) }}">Ajouter splits</a></div>\n
                                  </td>\n
                                  <td>{{ result.reactionTime > 0 ? result.reactionTime|time_conversion(true) : "" }}</td>\n
                                  <td>{{ result.placeHeat }}</td>\n
                                  <td>{{ result.place == 999 ? "" : result.place }}</td>\n
                                  <td align="center" style="display: {{ result.isRelay ? 'none' : '' }};"><input type="checkbox" id="input-{{ result.id }}" class="inputResult" data-race="{{ idRace }}" data-resulttype="{{ result.resultTypeId }}" data-category="{{ result.categoryId }}" data-city="{{ result.cityId }}" data-competitiontype="{{ result.competitionTypeId }}" data-competitiondiscipline="{{ result.competitionDisciplineId }}" data-poolsize="{{ result.poolSizeId }}" data-club="{{ result.clubId }}" data-result={{ result.infosJS|json_encode|e('html_attr') }} /></td>\n
      {% endif %}\n
                              </tr>\n
                  {% endfor %}\n
          {% endfor %}\n
                          </table>\n
                      </div>\n
      {% endblock %}\n
      {% block javascripts %}\n
          <script type="text/Javascript">\n
              var haveFilters = true;\n
              var haveCheckboxes = true;\n
      \n
              var selectRace = document.getElementById("selectRace");\n
              var selectResultType = document.getElementById("selectResultType");\n
              var selectCategory = document.getElementById("selectCategory");\n
              var selectCity = document.getElementById("selectCity");\n
              var selectCompetitionType = document.getElementById("selectCompetitionType");\n
              var selectCompetitionDiscipline = document.getElementById("selectCompetitionDiscipline");\n
              var selectPoolSize = document.getElementById("selectPoolSize");\n
              var selectClub = document.getElementById("selectClub");\n
      \n
              var inputsRace = document.getElementsByClassName("inputRace");\n
              for(let i = 0; i < inputsRace.length; i++) {\n
                  inputsRace[i].addEventListener("change", function() {\n
                      checkCB("Race", this, [], ["Result"]);\n
                      setBasket();\n
                  });\n
              }\n
              var inputsResult = document.getElementsByClassName("inputResult");\n
              for(let i = 0; i < inputsResult.length; i++) {\n
                  inputsResult[i].addEventListener("changeFromBasket", function() {\n
                      checkCB("Result", this, ["Race"], []);\n
                  });\n
                  inputsResult[i].addEventListener("changeFromTop", function() {\n
                      checkCB("Result", this, ["Race"], []);\n
                      updateBasket(this);\n
                  });\n
                  inputsResult[i].addEventListener("change", function() {\n
                      checkCB("Result", this, ["Race"], []);\n
                      updateBasket(this);\n
                      reOrderResults();\n
                      setBasket();\n
                  });\n
              }\n
      \n
              function checkCB(from, input, tops, bottoms) {\n
                  console.log("checkCB - "+from);\n
                  var cptChecked = 0;\n
                  var cptNoChecked = 0;\n
                  var cptTotal = 0;\n
                  //var inputs = eval(input.classList[0]);\n
                  var inputs = eval("inputs"+from);\n
                  for(let i = 0; i < inputs.length; i++) {\n
                      //console.log(inputs[i]);\n
                      //console.log(inputs[i].dataset.race+" == "+input.dataset.race+" && "+inputs[i].dataset.gender+" == "+input.dataset.gender+" && ("+from+" == Result && ("+inputs[i].dataset.resulttype+" == "+input.dataset.resulttype+" || "+inputs[i].dataset.category+" == "+input.dataset.category+"))");\n
                      if(inputs[i].dataset.race == input.dataset.race) {\n
                          if(inputs[i].checked) {\n
                              cptChecked++;\n
                          }\n
                          cptTotal++;\n
                      }\n
                  }\n
                  //console.log(cptTotal+" = "+cptChecked);\n
                  var actionCheckTop = cptTotal == cptChecked;\n
                  for(let t = 0; t < tops.length; t++) {\n
                      var inputsTop = eval("inputs"+tops[t]);\n
                      for(let i = 0; i < inputsTop.length; i++) {\n
                          //console.log(inputsTop[i].dataset.race+" == "+input.dataset.race+" && "+inputsTop[i].dataset.gender+" == "+input.dataset.gender+" && (("+from+" == result && ("+inputsTop[i].dataset.heat+" == "+input.dataset.heat+" || "+inputsTop[i].dataset.category+" == "+input.dataset.category+")))");\n
                          if(inputsTop[i].dataset.race == input.dataset.race) {\n
                              //console.log(inputsTop[i]);\n
                              //console.log(from == "result" && (inputsTop[i].dataset.heat == input.dataset.heat || inputsTop[i].dataset.category == input.dataset.category));\n
                              inputsTop[i].checked = actionCheckTop;\n
                              inputsTop[i].dispatchEvent(new Event('changeFromBottom'));\n
                          }\n
                      }\n
                  }\n
                  var actionCheckBottom = input.checked;\n
                  for(let b = 0; b < bottoms.length; b++) {\n
                      var levelBottom = from+"-"+bottoms[b];\n
                      var inputsBottom = eval("inputs"+bottoms[b]);\n
                      for(let i = 0; i < inputsBottom.length; i++) {\n
                          //console.log(inputsBottom[i].dataset.race+" == "+input.dataset.race+" && "+inputsBottom[i].dataset.gender+" == "+input.dataset.gender+" && ("+levelBottom+" == RaceGender-ResultType || "+levelBottom+" == RaceGender-Heat || ("+levelBottom+" == ResultType-Category && "+inputsBottom[i].dataset.resulttype+" == "+input.dataset.resulttype+") || ("+levelBottom+" == Category-Result && "+inputsBottom[i].dataset.resulttype+" == "+input.dataset.resulttype+" && "+inputsBottom[i].dataset.category+" == "+input.dataset.category+") || ("+levelBottom+" == ResultType-Result && "+inputsBottom[i].dataset.resulttype+" == "+input.dataset.resulttype+") || ("+levelBottom+" == Heat-Result && "+inputsBottom[i].dataset.heat+" == "+input.dataset.heat+"))");\n
      \n
      \n
                          if(inputsBottom[i].dataset.race == input.dataset.race) {\n
                              //console.log(inputsBottom[i]);\n
                              //console.log(from == "result" && (inputsBottom[i].dataset.heat == input.dataset.heat || inputsBottom[i].dataset.category == input.dataset.category));\n
                              //console.log(inputsBottom[i].checked+" != "+actionCheckBottom+" && (("+actionCheckBottom+" == true && "+basket.results.length+" < 10) || "+actionCheckBottom+" == false)");\n
                              if(inputsBottom[i].checked != actionCheckBottom && ((actionCheckBottom == true && basket.results.length < 10) || actionCheckBottom == false)) {\n
                                  inputsBottom[i].checked = actionCheckBottom;\n
                                  if(bottoms[b] == "Result") {\n
                                      //addRemoveResult(actionCheckBottom ? "add" : "remove", JSON.parse(inputsBottom[i].dataset.result));\n
                                  }\n
                                  inputsBottom[i].dispatchEvent(new Event('changeFromTop'));\n
                              }\n
                          }\n
                      }\n
                  }\n
              }\n
      \n
              function updateBasket(input) {\n
                  var dataResult = JSON.parse(input.dataset.result);\n
                  var basketLengthStart = basket.results.length;\n
                  dataResult.orderDisplay = basket.results.length+1;\n
                  addRemoveBasket(input.checked ? "add" : "remove", dataResult);\n
                  if(basket.results.length == 0) {\n
                      showHideCheckbox(0, 0);\n
                  } else {\n
                      if(basket.results.length == 10) {\n
                          showHideCheckbox(-1, -1);\n
                      }\n
                  }\n
                  if(basketLengthStart == 0 || basket.results.length == 0) {\n
                      if(dataResult.race.id != selectRace.value) {\n
                          selectRace.value = dataResult.race.id;\n
                      }\n
                      if(dataResult.poolSize.id != selectPoolSize.value) {\n
                          selectPoolSize.value = dataResult.poolSize.id;\n
                      }\n
                      filter();\n
                  }\n
                  if(basketLengthStart == 0 || basketLengthStart == 10) {\n
                      showHideCheckbox(dataResult.race.id, dataResult.poolSize.id);\n
                  }\n
                  basket.poolSize = dataResult.poolSize;\n
                  //setBasket();\n
              }\n
      \n
              var divsCBRaceGender = document.getElementsByClassName("divCBRace");\n
              function showHideCheckbox(idRace, idPoolSize) {\n
                  for(let i = 0; i < divsCBRaceGender.length; i++) {\n
                      if(divsCBRaceGender[i].dataset.race == idRace || idRace == 0) {\n
                          divsCBRaceGender[i].style.visibility = "visible";\n
                      } else {\n
                          divsCBRaceGender[i].style.visibility = "hidden";\n
                      }\n
                  }\n
              }\n
      \n
              var selectRace = document.getElementById("selectRace");\n
              var selectResultType = document.getElementById("selectResultType");\n
              var selectCategory = document.getElementById("selectCategory");\n
              var selectCity = document.getElementById("selectCity");\n
              var selectCompetitionType = document.getElementById("selectCompetitionType");\n
              var selectCompetitionDiscipline = document.getElementById("selectCompetitionDiscipline");\n
              var selectPoolSize = document.getElementById("selectPoolSize");\n
              var selectClub = document.getElementById("selectClub");\n
      \n
              function filter() {\n
                  console.log("filter");\n
                  var raceId = selectRace.value;\n
                  var resultTypeId = selectResultType.value;\n
                  var categoryId = selectCategory.value;\n
                  var cityId = selectCity.value;\n
                  var competitionTypeId = selectCompetitionType.value;\n
                  var competitionDisciplineId = selectCompetitionDiscipline.value;\n
                  var poolSizeId = selectPoolSize.value;\n
                  var clubId = selectClub.value;\n
      \n
                  var tableResults = document.getElementById("tableResults");\n
                  for(var tr of tableResults.getElementsByTagName("tr")) {\n
                      /*console.log("("+tr.dataset.race+" == "+raceId+" || "+raceId+" == '0' || "+tr.dataset.race+" == 0)");\n
                      console.log("("+tr.dataset.resulttype+" == "+resultTypeId+" || "+resultTypeId+" == '0' || "+tr.dataset.resulttype+" == 0)");\n
                      console.log("("+tr.dataset.category+" == "+categoryId+" || "+categoryId+" == '0' || "+tr.dataset.category+" == 0)");\n
                      console.log("("+tr.dataset.city+" == "+cityId+" || "+cityId+" == '0' || "+tr.dataset.city+" == 0)");\n
                      console.log("("+tr.dataset.competitiontype+" == "+competitionTypeId+" || "+competitionTypeId+" == '0' || "+tr.dataset.competitiontype+" == 0)");\n
                      console.log("("+tr.dataset.competitiondiscipline+" == "+competitionDisciplineId+" || "+competitionDisciplineId+" == '0' || "+tr.dataset.competitiondiscipline+" == 0)");\n
                      console.log("("+tr.dataset.poolsize+" == "+poolSizeId+" || "+poolSizeId+" == '0' || "+tr.dataset.poolsize+" == 0)");\n
                      console.log("("+tr.dataset.club+" == "+clubId+" || "+clubId+" == '0' || "+tr.dataset.club+" == 0)");\n
                      console.log("-----------------");*/\n
                      if((tr.dataset.race == raceId || raceId == "0" || tr.dataset.race == 0)\n
                          && (tr.dataset.resulttype == resultTypeId || resultTypeId == "0" || tr.dataset.resulttype == 0)\n
                          && (tr.dataset.category == categoryId || categoryId == "0" || tr.dataset.category == 0)\n
                          && (tr.dataset.city == cityId || cityId == "0" || tr.dataset.city == 0)\n
                          && (tr.dataset.competitiontype == competitionTypeId || competitionTypeId == "0" || tr.dataset.competitiontype == 0)\n
                          && (tr.dataset.competitiondiscipline == competitionDisciplineId || competitionDisciplineId == "0" || tr.dataset.competitiondiscipline == 0)\n
                          && (tr.dataset.poolsize == poolSizeId || poolSizeId == "0" || tr.dataset.poolsize == 0)\n
                          && (tr.dataset.club == clubId || clubId == "0" || tr.dataset.club == 0)\n
                      ) {\n
                          tr.style.display = "";\n
                      } else {\n
                          tr.style.display = "none";\n
                      }\n
                  }\n
      \n
                  var tabNameSelects = ['Race', 'ResultType', 'Category', 'City', 'CompetitionType', 'CompetitionDiscipline', 'PoolSize', 'Club'];\n
      \n
                  for(var nameSelect of tabNameSelects) {\n
                      var evalSelect = eval("select"+nameSelect);\n
                      var displays = [];\n
                      for(var option of evalSelect.getElementsByTagName("option")) {\n
                          if(\n
                              (((nameSelect == "Race" && basket.race.id > 0 && basket.race.id == option.value) || ((nameSelect != "Race" || basket.race.id == 0) && option.dataset.races.split(",").includes(raceId)) || raceId == "0")) \n
                              && (option.dataset.resulttypes.split(",").includes(resultTypeId) || resultTypeId == "0") \n
                              && (option.dataset.categories.split(",").includes(categoryId) || categoryId == "0") \n
                              && (option.dataset.cities.split(",").includes(cityId) || cityId == "0") \n
                              && (option.dataset.competitiontypes.split(",").includes(competitionTypeId) || competitionTypeId == "0")\n
                              && (option.dataset.competitiondisciplines.split(",").includes(competitionDisciplineId) || competitionDisciplineId == "0")\n
                              && (option.dataset.poolsizes.split(",").includes(poolSizeId) || poolSizeId == "0")\n
                              && (option.dataset.clubs.split(",").includes(clubId) || clubId == "0")\n
                          ) {\n
                              option.style.display = "";\n
                              displays.push(option.value);\n
                          } else {\n
                              option.style.display = "none";\n
                          }\n
                      }\n
                      //console.log(nameSelect+" - "+displays.length);\n
                      /*if(displays.length == 2) {\n
                          evalSelect.value = displays[1];\n
                      }*/\n
                  }\n
              }\n
              function unfilter() {\n
                  selectRace.value = basket.race.id;\n
                  selectPoolSize.value = basket.poolSize.id;\n
                  selectResultType.value = 0;\n
                  selectCategory.value = 0;\n
                  selectCity.value = 0;\n
                  selectCompetitionType.value = 0;\n
                  selectCompetitionDiscipline.value = 0;\n
                  selectClub.value = 0;\n
                  filter();\n
                  showHideCheckbox(basket.race.id);\n
              }\n
      \n
              var tdsTooltip = document.getElementsByClassName("tdTooltip");\n
              var tooltipElem;\n
      \n
              for(let i = 0; i < tdsTooltip.length; i++) {\n
                  tdsTooltip[i].addEventListener("mouseover", function(event) {\n
                      tooltipElem = document.createElement('div');\n
                      tooltipElem.className = 'tooltip';\n
                      tooltipElem.innerHTML = this.dataset.tooltip;\n
                      document.body.append(tooltipElem);\n
      \n
                      // position it above the annotated element (top-center)\n
                      let target = event.target;\n
                      let coords = target.getBoundingClientRect();\n
      \n
                      let left = coords.left + (target.offsetWidth - tooltipElem.offsetWidth) / 2;\n
                      if (left < 0) left = 0; // don't cross the left window edge\n
      \n
                      let top = coords.top - tooltipElem.offsetHeight - 5;\n
                      if (top < 0) { // if crossing the top window edge, show below instead\n
                          top = coords.top + target.offsetHeight + 5;\n
                      }\n
      \n
                      tooltipElem.style.left = left + 'px';\n
                      tooltipElem.style.top = top + 'px';\n
                      tooltipElem.style.display = "";\n
                  });\n
                  tdsTooltip[i].addEventListener("mouseout", function() {\n
                      tooltipElem.remove();\n
                      tooltipElem = null;\n
                  });\n
              }\n
          </script>\n
      {% endblock %}
      """
    -name: "swimmer/details.html.twig"
    -path: "/var/www/symfony-app/templates/swimmer/details.html.twig"
  }
  -phpFile: "/var/www/symfony-app/vendor/twig/twig/src/Extension/CoreExtension.php"
  -phpLine: 1739
}
  1. {% extends 'base.html.twig' %}
  2. {% block body %}
  3. <div>
  4. <div>
  5. <h4>{{ swimmer.lastName }} {{ swimmer.firstName }}</h4>
  6. <h5>{{ swimmer.birthdate|date('Y') }} - {{ swimmer.country.shortName }}</h5>
  7. </div>
  8. <div>
  9. <span style="display: {{ tabRaces|length > 1 ? '' : 'none' }}">Filtrer par course :
  10. <select id="selectRace" onChange="Javascript: filter();">
  1. // line 4
  2. yield " <div>
  3. <div>
  4. <h4>";
  5. // line 6
  6. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["swimmer"]) || array_key_exists("swimmer", $context) ? $context["swimmer"] : (function () { throw new RuntimeError('Variable "swimmer" does not exist.', 6, $this->source); })()), "lastName", [], "any", false, false, false, 6), "html", null, true);
  7. yield " ";
  8. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["swimmer"]) || array_key_exists("swimmer", $context) ? $context["swimmer"] : (function () { throw new RuntimeError('Variable "swimmer" does not exist.', 6, $this->source); })()), "firstName", [], "any", false, false, false, 6), "html", null, true);
  9. yield "</h4>
  10. <h5>";
  11. // line 7
in vendor/twig/twig/src/Template.php -> block_body (line 446)
  1. throw new \LogicException('A block must be a method on a \Twig\Template instance.');
  2. }
  3. if (null !== $template) {
  4. try {
  5. yield from $template->$block($context, $blocks);
  6. } catch (Error $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($template->getSourceContext());
  9. }
  1. <!-- Navbar & Carousel End -->
  2. <div class=\"container-fluid wow fadeInUp\" data-wow-delay=\"0.1s\">
  3. <div class=\"container-fluid espaceHaut\">
  4. ";
  5. // line 53
  6. yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
  7. // line 54
  8. yield " </div>
  9. </div>
  10. </div>
  11. </body>
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1. {
  2. $context += $this->env->getGlobals();
  3. $blocks = array_merge($this->blocks, $blocks);
  4. try {
  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", "swimmer/details.html.twig"));
  3. $this->parent = $this->load("base.html.twig", 1);
  4. yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  5. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  6. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1. {
  2. $context += $this->env->getGlobals();
  3. $blocks = array_merge($this->blocks, $blocks);
  4. try {
  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 373)
  1. ob_start();
  2. } else {
  3. ob_start(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. *
AbstractController->render('swimmer/details.html.twig', array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array())) in src/Controller/SwimmerController.php (line 810)
  1. }
  2. }
  3. ksort($tabCategories);
  4. return $this->render('swimmer/details.html.twig', [
  5. 'swimmer' => $swimmer,
  6. 'tabRaces' => $tabRaces,
  7. 'tabResultTypes' => $tabResultTypes,
  8. 'tabCategories' => $tabCategories,
  9. 'tabCities' => $tabCities,
  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. $this->boot();
  2. ++$this->requestStackSize;
  3. $this->resetServices = true;
  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. if (Kernel::VERSION_ID >= 60400) {
  7. $response->send(false);
  8. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 29)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/var/www/symfony-app/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 13:00:14 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "aa43e1"
    },
    "request_uri": "https://swimviz.com/_profiler/aa43e1",
    "method": "GET"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 13:00:14 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "ContainerWacRfMa\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerWacRfMa\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 13:00:14 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "ContainerWacRfMa\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerWacRfMa\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\Security\\Http\\Firewall\\ContextListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\WebLink\EventListener\AddLinkHeaderListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\WebLink\\EventListener\\AddLinkHeaderListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\Security\Http\RememberMe\ResponseListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\Security\\Http\\RememberMe\\ResponseListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::removeCspHeader".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::removeCspHeader"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Bundle\\WebProfilerBundle\\EventListener\\WebDebugToolbarListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener::onResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener::onResponse"
}
DEBUG 13:00:14 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelResponse"
}
DEBUG 13:00:14 event Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelFinishRequest"
}
DEBUG 13:00:14 event Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelFinishRequest"
}
DEBUG 13:00:14 event Notified event "kernel.finish_request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelFinishRequest"
}
DEBUG 13:00:14 event Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelFinishRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 13:00:14 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 13:00:14 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 13:00:14 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "ContainerWacRfMa\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerWacRfMa\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 13:00:14 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}

Stack Trace

RuntimeError
Twig\Error\RuntimeError:
Impossible to access an attribute ("lastName") on a null variable in "swimmer/details.html.twig" at line 6.

  at templates/swimmer/details.html.twig:6
  at Twig\Extension\CoreExtension::getAttribute(object(Environment), object(Source), null, 'lastName', array(), 'any', false, false, false, 6)
     (var/cache/dev/twig/52/52d5235257afdf5999481becb3a3cb3f.php:81)
  at __TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77->block_body(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array(), 'app' => object(AppVariable), 'page' => 'home', 'title' => '', 'saveFlashes' => array()), array('stylesheets' => array(object(__TwigTemplate_a0a3e89bf11664d9fe88f110b24e2901), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_body'), 'javascripts' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_javascripts')))
     (vendor/twig/twig/src/Template.php:446)
  at Twig\Template->yieldBlock('body', array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array(), 'app' => object(AppVariable), 'page' => 'home', 'title' => '', 'saveFlashes' => array()), array('stylesheets' => array(object(__TwigTemplate_a0a3e89bf11664d9fe88f110b24e2901), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_body'), 'javascripts' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_javascripts')))
     (var/cache/dev/twig/ac/ac5b6b62dafc063ca40b409c91a711f4.php:162)
  at __TwigTemplate_a0a3e89bf11664d9fe88f110b24e2901->doDisplay(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array(), 'app' => object(AppVariable), 'page' => 'home', 'title' => '', 'saveFlashes' => array()), array('stylesheets' => array(object(__TwigTemplate_a0a3e89bf11664d9fe88f110b24e2901), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_body'), 'javascripts' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_javascripts')))
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array(), 'app' => object(AppVariable)), array('stylesheets' => array(object(__TwigTemplate_a0a3e89bf11664d9fe88f110b24e2901), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_body'), 'javascripts' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_javascripts')))
     (var/cache/dev/twig/52/52d5235257afdf5999481becb3a3cb3f.php:54)
  at __TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77->doDisplay(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array(), 'app' => object(AppVariable)), array('body' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_body'), 'javascripts' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_javascripts')))
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array(), 'app' => object(AppVariable)), array('body' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_body'), 'javascripts' => array(object(__TwigTemplate_6e8627ad4209c0f0646d52f80c9ada77), 'block_javascripts')))
     (vendor/twig/twig/src/Template.php:358)
  at Twig\Template->display(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array()))
     (vendor/twig/twig/src/Template.php:373)
  at Twig\Template->render(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array()))
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render(array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array()))
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render('swimmer/details.html.twig', array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array()))
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:431)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView('swimmer/details.html.twig', null, array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array()), 'render')
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:436)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender('swimmer/details.html.twig', null, array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array()), null, 'render')
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:250)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render('swimmer/details.html.twig', array('swimmer' => null, 'tabRaces' => array(), 'tabResultTypes' => array(), 'tabCategories' => array(), 'tabCities' => array(), 'tabCompetitionTypes' => array(), 'tabCompetitionDisciplines' => array(), 'tabPoolSizes' => array(), 'tabClubs' => array(), 'tabResults' => array()))
     (src/Controller/SwimmerController.php:810)
  at App\Controller\SwimmerController->details(100, object(PoolSizeRepository), object(SwimmerRepository), object(ResultRepository), object(SplitsFormattingService), object(TimeConversionService))
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (vendor/symfony/http-kernel/Kernel.php:182)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:29)
  at require_once('/var/www/symfony-app/vendor/autoload_runtime.php')
     (public/index.php:5)