getOneBy([ 'questionId' => $questionId, 'userId' => $userId, ]); } public function getResultsForQuestionId($questionId) { $results = [ GeneralMeetingVote::VALUE_YES => 0, GeneralMeetingVote::VALUE_NO => 0, GeneralMeetingVote::VALUE_ABSTENTION => 0, ]; $sql = <<getPreparedQuery($sql)->setParams(['question_id' => $questionId]); foreach ($preparedQuery->query($this->getCollection(new HydratorArray())) as $row) { $results[$row['value']] = $row['weight_sum']; } return $results; } /** * @inheritDoc */ public static function initMetadata(SerializerFactoryInterface $serializerFactory, array $options = []) { $metadata = new Metadata($serializerFactory); $metadata->setEntity(GeneralMeetingVote::class); $metadata->setConnectionName('main'); $metadata->setDatabase($options['database']); $metadata->setTable('afup_vote_assemblee_generale'); $metadata ->addField([ 'columnName' => 'afup_assemblee_generale_question_id', 'fieldName' => 'questionId', 'type' => 'int' ]) ->addField([ 'columnName' => 'afup_personnes_physiques_id', 'fieldName' => 'userId', 'type' => 'int' ]) ->addField([ 'columnName' => 'weight', 'fieldName' => 'weight', 'type' => 'int', ]) ->addField([ 'columnName' => 'value', 'fieldName' => 'value', 'type' => 'string', ]) ->addField([ 'columnName' => 'created_at', 'fieldName' => 'createdAt', 'type' => 'datetime', ]) ; return $metadata; } }