Прежде всего
$templateId = $field->getTemplate();
возвращает ArrayCollection of Template (кстати, вы должны переименовать ваше свойство Templates)
Я считаю, что вы хотите проверить, находится ли шаблон в массиве шаблон полей.
Итак, есть два правильных способа сделать это:
Использование содержит метод из Doctrine \ Common \ Collections \ ArrayCollection
Сравнить объект с другим
//First get the proper Template object instead of the id
$template = $entityManager->getRepository(Template::class)->find($templateId);
$templateArray = $field->getTemplate();
//return the boolean you want
$templateArray->contains($template);
Сравнить индексы / ключи:
$templateArray = $field->getTemplate();
//return the boolean you want
$templateArray->containsKey($templateId);
Но в случае, если вы хотите сделать то же самое, но с другим свойством, отличным от идентификатора, вы можете перебрать свой массив:
Сравнить другой атрибут
//In our case, name for example
$hasCustomAttribute=false;
foreach($field->getTemplate() as $template){
if($template->getName() == $nameToTest){
$hasCustomAttribute=true;
}
}