I have problem when sending my search form.
Symfony say
Warning: Illegal string offset 'city'
it's my function for process my form
public function searchTeam($option)
{
return $this->createQueryBuilder('t') // t = team
->leftJoin('t.cities','city')
->where('city.name = :cityName')
->setParameter("cityName", $option['city']->getName())
->andWhere('t.name = :name')
->setParameter("name", $option['name'])
->getQuery()
->getResult();
}
and my TeamController :
$formSearchTeam = $this->createForm(SearchTeamType::class, $team);
$formSearchTeam->handleRequest($request);
if($formSearchTeam->isSubmitted() && $formSearchTeam->isValid()) {
$option = $formSearchTeam->getData()->getName();
$teamSearch = $repo->searchTeam($option);
dd($teamSearch);
}
I make dd($option) for see data to send my form and I recover this data :
TeamController.php on line 56:
App\Entity\Team {#1068 ▼
-id: null
-name: "New"
-picture: null
-home_team: Doctrine\Common\Collections\ArrayCollection {#1071 ▶}
-outside_team: Doctrine\Common\Collections\ArrayCollection {#1085 ▶}
-city: App\Entity\City {#1095 ▼
-id: 7
-name: "Paris"
-zip_code: 75000
-teams: Doctrine\ORM\PersistentCollection {#1093 ▼
-snapshot: []
-owner: App\Entity\City {#1095}
-association: array:15 [ …15]
-em: Doctrine\ORM\EntityManager {#490 …11}
-backRefFieldName: "city"
-typeClass: Doctrine\ORM\Mapping\ClassMetadata {#801 …}
-isDirty: false
#collection: Doctrine\Common\Collections\ArrayCollection {#1170 ▶}
#initialized: false
}
}
-team_asking: Doctrine\Common\Collections\ArrayCollection {#1129 ▶}
-accepting_team: Doctrine\Common\Collections\ArrayCollection {#1125 ▶}
-Team_lead: null
-User: Doctrine\Common\Collections\ArrayCollection {#1080 ▶}
}
I find my error,
City is an object and not an array. In my code I change this
by that :