本文整理汇总了PHP中Akeneo\Component\StorageUtils\Repository\IdentifiableObjectRepositoryInterface::findOneByIdentifier方法的典型用法代码示例。如果您正苦于以下问题:PHP IdentifiableObjectRepositoryInterface::findOneByIdentifier方法的具体用法?PHP IdentifiableObjectRepositoryInterface::findOneByIdentifier怎么用?PHP IdentifiableObjectRepositoryInterface::findOneByIdentifier使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Akeneo\Component\StorageUtils\Repository\IdentifiableObjectRepositoryInterface
的用法示例。
在下文中一共展示了IdentifiableObjectRepositoryInterface::findOneByIdentifier方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getAttributeLabelFromCode
/**
* @param string $code
*
* @return string
*/
public function getAttributeLabelFromCode($code)
{
if (null !== ($attribute = $this->attributeRepository->findOneByIdentifier($code))) {
return (string) $attribute;
}
return $code;
}
示例2: findVariantGroupOr404
/**
* Find a variant group by its id or return a 404 response
*
* @param string $code
*
* @throws NotFoundHttpException
*
* @return GroupInterface
*/
protected function findVariantGroupOr404($code)
{
$group = $this->groupRepository->findOneByIdentifier($code);
if (null === $group || false === $group->getType()->isVariant()) {
throw new NotFoundHttpException(sprintf('Variant group with id %d could not be found.', $id));
}
return $group;
}
示例3: setFieldData
/**
* {@inheritdoc}
*
* Expected data input format : "family_code"
*/
public function setFieldData(ProductInterface $product, $field, $data, array $options = [])
{
$this->checkData($field, $data);
if (null !== $data) {
$family = $this->familyRepository->findOneByIdentifier($data);
if (null === $family) {
throw InvalidArgumentException::expected($field, 'existing family code', 'setter', 'family', $data);
}
$product->setFamily($family);
} else {
$product->setFamily(null);
}
}
示例4: removeFieldData
/**
* {@inheritdoc}
*
* Expected data input format : ["category_code", "another_category_code"]
*/
public function removeFieldData(ProductInterface $product, $field, $data, array $options = [])
{
$this->checkData($field, $data);
$categories = [];
foreach ($data as $categoryCode) {
$category = $this->categoryRepository->findOneByIdentifier($categoryCode);
if (null === $category) {
throw InvalidArgumentException::expected($field, 'existing category code', 'remover', 'category', $categoryCode);
}
$categories[] = $category;
}
foreach ($categories as $categoryToRemove) {
$product->removeCategory($categoryToRemove);
}
}
示例5: let
function let(IdentifiableObjectRepositoryInterface $repository, \stdClass $entity)
{
$entity->code = 'foo';
$repository->getIdentifierProperties()->willReturn(['code']);
$repository->findOneByIdentifier('foo')->willReturn($entity);
$this->beConstructedWith($repository, ['multiple' => false]);
}
示例6: findGroup
/**
* @param string $code
*
* @return Group|null
*/
protected function findGroup($code)
{
$group = $this->groupRepository->findOneByIdentifier($code);
if (null === $group) {
throw new \InvalidArgumentException(sprintf('Group %s was not found', $code));
}
return $group;
}
示例7: reverseTransform
/**
* {@inheritdoc}
*/
public function reverseTransform($identifier)
{
if (null === $identifier) {
return null;
}
if (true === $this->multiple) {
if (!is_array($identifier)) {
throw new UnexpectedTypeException($identifier, 'array');
}
$models = [];
foreach ($identifier as $scalarIdentifier) {
$models[] = $this->repository->findOneByIdentifier($scalarIdentifier);
}
return $models;
}
return $this->repository->findOneByIdentifier($identifier);
}
示例8: addFieldData
/**
* {@inheritdoc}
*
* Expected data input format : ["group_code"]
*/
public function addFieldData(ProductInterface $product, $field, $data, array $options = [])
{
$this->checkData($field, $data);
$groups = [];
foreach ($data as $groupCode) {
$group = $this->groupRepository->findOneByIdentifier($groupCode);
if (null === $group) {
throw InvalidArgumentException::expected($field, 'existing group code', 'adder', 'groups', $groupCode);
} elseif ($group->getType()->isVariant()) {
throw InvalidArgumentException::expected($field, 'non variant group code', 'adder', 'groups', $groupCode);
} else {
$groups[] = $group;
}
}
foreach ($groups as $group) {
$product->addGroup($group);
}
}
示例9: execute
/**
* @param array $configuration
*/
public function execute(array $configuration)
{
$actions = $configuration['actions'];
$variantGroupCode = $actions['value'];
$variantGroup = $this->groupRepository->findOneByIdentifier($variantGroupCode);
$axisAttributeCodes = $this->getAxisAttributeCodes($variantGroup);
$eligibleProductIds = $this->productRepository->getEligibleProductIdsForVariantGroup($variantGroup->getId());
$cursor = $this->getProductsCursor($configuration['filters']);
$paginator = $this->paginatorFactory->createPaginator($cursor);
list($productAttributeAxis, $acceptedIds) = $this->filterDuplicateAxisCombinations($paginator, $eligibleProductIds, $axisAttributeCodes);
$excludedIds = $this->addSkippedMessageForDuplicatedProducts($productAttributeAxis);
$acceptedIds = array_diff($acceptedIds, $excludedIds);
$configuration['filters'] = [['field' => 'id', 'operator' => 'IN', 'value' => $acceptedIds]];
if (0 === count($acceptedIds)) {
$configuration = null;
}
$this->setJobConfiguration(json_encode($configuration));
}
示例10: setAssociatedGroups
/**
* @param AssociationInterface $association
* @param array $groupsCodes
*/
protected function setAssociatedGroups(AssociationInterface $association, $groupsCodes)
{
foreach ($groupsCodes as $groupCode) {
$associatedGroup = $this->groupRepository->findOneByIdentifier($groupCode);
if (!$associatedGroup) {
throw InvalidArgumentException::expected('associations', 'existing group code', 'setter', 'association', $groupCode);
}
$association->addGroup($associatedGroup);
}
}
示例11: setFieldData
/**
* {@inheritdoc}
*
* Expected data input format : ["group_code"]
*/
public function setFieldData(ProductInterface $product, $field, $data, array $options = [])
{
$this->checkData($field, $data);
$groups = [];
foreach ($data as $groupCode) {
$group = $this->groupRepository->findOneByIdentifier($groupCode);
if (null === $group) {
throw InvalidArgumentException::expected($field, 'existing group code', 'setter', 'groups', $groupCode);
} else {
$groups[] = $group;
}
}
$oldGroups = $product->getGroups();
foreach ($oldGroups as $group) {
$product->removeGroup($group);
}
foreach ($groups as $group) {
$product->addGroup($group);
}
}
示例12: setLocales
/**
* @param ChannelInterface $channel
* @param array $localeCodes
*/
protected function setLocales(ChannelInterface $channel, array $localeCodes)
{
$locales = [];
foreach ($localeCodes as $localeCode) {
$locale = $this->localeRepository->findOneByIdentifier($localeCode);
if (null === $locale) {
throw new \InvalidArgumentException(sprintf('Locale with "%s" code does not exist', $localeCode));
}
$locales[] = $locale;
}
$channel->setLocales($locales);
}
示例13: findObject
/**
* Find an object according to its identifiers from a repository.
*
* @param IdentifiableObjectRepositoryInterface $repository the repository to search inside
* @param array $data the data that is currently processed
*
* @throws MissingIdentifierException in case the processed data do not allow to retrieve an object
* by its identifiers properly
*
* @return object|null
*/
protected function findObject(IdentifiableObjectRepositoryInterface $repository, array $data)
{
$properties = $repository->getIdentifierProperties();
$references = [];
foreach ($properties as $property) {
if (!isset($data[$property])) {
throw new MissingIdentifierException(sprintf('Missing identifier column "%s". Columns found: %s.', $property, implode(', ', array_keys($data))));
}
$references[] = $data[$property];
}
return $repository->findOneByIdentifier(implode('.', $references));
}
示例14: findObject
/**
* Find an object according to its identifiers from a repository.
*
* @param IdentifiableObjectRepositoryInterface $repository the repository to search inside
* @param array $data the data that is currently processed
*
* @throws MissingIdentifierException in case the processed data do not allow to retrieve an object
* by its identifiers properly
*
* @return object|null
*/
protected function findObject(IdentifiableObjectRepositoryInterface $repository, array $data)
{
$properties = $repository->getIdentifierProperties();
$references = [];
foreach ($properties as $property) {
if (!isset($data[$property])) {
throw new MissingIdentifierException();
}
$references[] = $data[$property];
}
return $repository->findOneByIdentifier(implode('.', $references));
}
示例15: setFieldData
/**
* {@inheritdoc}
*
* Expected data input format : "variant_group_code"
*/
public function setFieldData(ProductInterface $product, $field, $data, array $options = [])
{
$this->checkData($field, $data);
if (null !== $data) {
$variantGroup = $this->groupRepository->findOneByIdentifier($data);
if (null === $variantGroup) {
throw InvalidArgumentException::expected($field, 'existing variant group code', 'setter', 'variant_group', $data);
}
if (!$variantGroup->getType()->isVariant()) {
throw InvalidArgumentException::expected($field, 'variant group code', 'setter', 'variant_group', $data);
}
}
$existingGroups = $product->getGroups();
foreach ($existingGroups as $group) {
if ($group->getType()->isVariant()) {
$product->removeGroup($group);
}
}
if (null !== $data) {
$product->addGroup($variantGroup);
}
}