symfony - How to get not find multiple values in doctrine -
if search entities array in doctrine like:
$names = ['jim', 'anne', 'kara']; $em->findbyname($names); how can know then, names not found? of course, can loop returned array , check each name again. maybe there doctrine method returns not found names?
as far know, can't achieve using entityrepository apis, use array_diff , array_map together, single line solution, follow:
$names = ['jim', 'anne', 'kara']; $res = $em->getrepository('yourbundle:yourentity')->findbyname($names); $notfound = array_diff($names, array_map(function($obj){ return $obj->getname(); }, $res)); consider array_diff use === operator compare values, names must equal duplicates. if don't want take care lower/upper cases, convert strtolower.
$notfound = array_diff(array_map('strtolower', $names), array_map(function($obj){ return strtolower($obj->getname()); }, $res)); of course assumed have declared name getter in entity.
Comments
Post a Comment