Exceptions
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 }
in
templates/swimmer/details.html.twig
(line 6)
{% extends 'base.html.twig' %}
{% block body %}
<div>
<div>
<h4>{{ swimmer.lastName }} {{ swimmer.firstName }}</h4>
<h5>{{ swimmer.birthdate|date('Y') }} - {{ swimmer.country.shortName }}</h5>
</div>
<div>
<span style="display: {{ tabRaces|length > 1 ? '' : 'none' }}">Filtrer par course :
<select id="selectRace" onChange="Javascript: filter();">
in
var/cache/dev/twig/52/52d5235257afdf5999481becb3a3cb3f.php
::
getAttribute
(line 81)
// line 4
yield " <div>
<div>
<h4>";
// line 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);
yield " ";
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);
yield "</h4>
<h5>";
// line 7
in
vendor/twig/twig/src/Template.php
->
block_body
(line 446)
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
yield from $template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
in
var/cache/dev/twig/ac/ac5b6b62dafc063ca40b409c91a711f4.php
->
yieldBlock
(line 162)
<!-- Navbar & Carousel End -->
<div class=\"container-fluid wow fadeInUp\" data-wow-delay=\"0.1s\">
<div class=\"container-fluid espaceHaut\">
";
// line 53
yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
// line 54
yield " </div>
</div>
</div>
</body>
in
vendor/twig/twig/src/Template.php
->
doDisplay
(line 402)
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
in
var/cache/dev/twig/52/52d5235257afdf5999481becb3a3cb3f.php
->
yield
(line 54)
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "swimmer/details.html.twig"));
$this->parent = $this->load("base.html.twig", 1);
yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in
vendor/twig/twig/src/Template.php
->
doDisplay
(line 402)
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
in
vendor/twig/twig/src/Template.php
->
yield
(line 358)
return $this->blocks;
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
in
vendor/twig/twig/src/Template.php
->
display
(line 373)
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
in
vendor/twig/twig/src/TemplateWrapper.php
->
render
(line 51)
yield from $this->template->yieldBlock($name, $context);
}
public function render(array $context = []): string
{
return $this->template->render($context);
}
/**
* @return void
*/
in
vendor/twig/twig/src/Environment.php
->
render
(line 333)
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function render($name, array $context = []): string
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
render
(line 431)
if (null !== $block) {
return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);
}
return $this->container->get('twig')->render($view, $parameters);
}
private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
{
$content = $this->doRenderView($view, $block, $parameters, $method);
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRenderView
(line 436)
return $this->container->get('twig')->render($view, $parameters);
}
private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
{
$content = $this->doRenderView($view, $block, $parameters, $method);
$response ??= new Response();
if (200 === $response->getStatusCode()) {
foreach ($parameters as $v) {
if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRender
(line 250)
* If an invalid form is found in the list of parameters, a 422 status code is returned.
* Forms found in parameters are auto-cast to form views.
*/
protected function render(string $view, array $parameters = [], ?Response $response = null): Response
{
return $this->doRender($view, null, $parameters, $response, __FUNCTION__);
}
/**
* Renders a block in a view.
*
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)
}
}
ksort($tabCategories);
return $this->render('swimmer/details.html.twig', [
'swimmer' => $swimmer,
'tabRaces' => $tabRaces,
'tabResultTypes' => $tabResultTypes,
'tabCategories' => $tabCategories,
'tabCities' => $tabCities,
in
vendor/symfony/http-kernel/HttpKernel.php
->
details
(line 183)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
$controller = $event->getController();
$arguments = $event->getArguments();
// call controller
$response = $controller(...$arguments);
// view
if (!$response instanceof Response) {
$event = new ViewEvent($this, $request, $type, $response, $event);
$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 76)
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
$this->requestStack->push($request);
$response = null;
try {
return $response = $this->handleRaw($request, $type);
} catch (\Throwable $e) {
if ($e instanceof \Error && !$this->handleAllThrowables) {
throw $e;
}
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 182)
$this->boot();
++$this->requestStackSize;
$this->resetServices = true;
try {
return $this->getHttpKernel()->handle($request, $type, $catch);
} finally {
--$this->requestStackSize;
}
}
in
vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php
->
handle
(line 35)
) {
}
public function run(): int
{
$response = $this->kernel->handle($this->request);
if (Kernel::VERSION_ID >= 60400) {
$response->send(false);
if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in
vendor/autoload_runtime.php
->
run
(line 29)
$app = $app(...$args);
exit(
$runtime
->getRunner($app)
->run()
);
<?php
use App\Kernel;
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
return function (array $context) {
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};
Logs
Level | Channel | Message |
---|---|---|
INFO 11:17:24 | request |
Matched route "_profiler". { "route": "_profiler", "route_parameters": { "_route": "_profiler", "_controller": "web_profiler.controller.profiler::panelAction", "token": "33748e" }, "request_uri": "https://swimviz.com/_profiler/33748e?panel=exception&type=request", "method": "GET" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke". { "event": "kernel.request", "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest" } |
DEBUG 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController" } |
DEBUG 11:17:24 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController" } |
DEBUG 11:17:24 | 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 11:17:24 | 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 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.controller_arguments" to listener "ContainerWacRfMa\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "ContainerWacRfMa\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments" } |
DEBUG 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke". { "event": "kernel.request", "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest" } |
DEBUG 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController" } |
DEBUG 11:17:24 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController" } |
DEBUG 11:17:24 | 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 11:17:24 | 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 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.controller_arguments" to listener "ContainerWacRfMa\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "ContainerWacRfMa\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments" } |
DEBUG 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelResponse" } |
DEBUG 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener::onKernelResponse" } |
DEBUG 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\WebLink\EventListener\AddLinkHeaderListener::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\WebLink\\EventListener\\AddLinkHeaderListener::onKernelResponse" } |
DEBUG 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelResponse" } |
DEBUG 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelResponse" } |
DEBUG 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener::onKernelResponse" } |
DEBUG 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::removeCspHeader". { "event": "kernel.response", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::removeCspHeader" } |
DEBUG 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Bundle\\WebProfilerBundle\\EventListener\\WebDebugToolbarListener::onKernelResponse" } |
DEBUG 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener::onResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener::onResponse" } |
DEBUG 11:17:24 | event |
Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelResponse". { "event": "kernel.response", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelResponse" } |
DEBUG 11:17:24 | 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 11:17:24 | 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 11:17:24 | 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 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke". { "event": "kernel.request", "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest" } |
DEBUG 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator" } |
DEBUG 11:17:24 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest" } |
DEBUG 11:17:24 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController" } |
DEBUG 11:17:24 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController" } |
DEBUG 11:17:24 | 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 11:17:24 | 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 11:17:24 | 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 11:17:24 | event |
Notified event "kernel.controller_arguments" to listener "ContainerWacRfMa\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "ContainerWacRfMa\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments" } |
DEBUG 11:17:24 | 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(50, 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) |