Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
BookmarkManagement.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Ui\Model;
8 
10 {
15 
20 
24  protected $filterBuilder;
25 
29  protected $userContext;
30 
37  public function __construct(
38  \Magento\Ui\Api\BookmarkRepositoryInterface $bookmarkRepository,
39  \Magento\Framework\Api\FilterBuilder $filterBuilder,
40  \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder,
41  \Magento\Authorization\Model\UserContextInterface $userContext
42  ) {
43  $this->bookmarkRepository = $bookmarkRepository;
44  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
45  $this->filterBuilder = $filterBuilder;
46  $this->userContext = $userContext;
47  }
48 
52  public function loadByNamespace($namespace)
53  {
54  $userIdFilter = $this->filterBuilder
55  ->setField('user_id')
56  ->setConditionType('eq')
57  ->setValue($this->userContext->getUserId())
58  ->create();
59  $namespaceFilter = $this->filterBuilder
60  ->setField('namespace')
61  ->setConditionType('eq')
62  ->setValue($namespace)
63  ->create();
64 
65  $this->searchCriteriaBuilder->addFilters([$userIdFilter]);
66  $this->searchCriteriaBuilder->addFilters([$namespaceFilter]);
67 
68  $searchCriteria = $this->searchCriteriaBuilder->create();
69  $searchResults = $this->bookmarkRepository->getList($searchCriteria);
70 
71  return $searchResults;
72  }
73 
77  public function getByIdentifierNamespace($identifier, $namespace)
78  {
79  $userIdFilter = $this->filterBuilder
80  ->setField('user_id')
81  ->setConditionType('eq')
82  ->setValue($this->userContext->getUserId())
83  ->create();
84  $identifierFilter = $this->filterBuilder
85  ->setField('identifier')
86  ->setConditionType('eq')
87  ->setValue($identifier)
88  ->create();
89  $namespaceFilter = $this->filterBuilder
90  ->setField('namespace')
91  ->setConditionType('eq')
92  ->setValue($namespace)
93  ->create();
94 
95  $this->searchCriteriaBuilder->addFilters([$userIdFilter]);
96  $this->searchCriteriaBuilder->addFilters([$identifierFilter]);
97  $this->searchCriteriaBuilder->addFilters([$namespaceFilter]);
98 
99  $searchCriteria = $this->searchCriteriaBuilder->create();
100  $searchResults = $this->bookmarkRepository->getList($searchCriteria);
101  if ($searchResults->getTotalCount() > 0) {
102  foreach ($searchResults->getItems() as $searchResult) {
103  $bookmark = $this->bookmarkRepository->getById($searchResult->getId());
104  return $bookmark;
105  }
106  }
107 
108  return null;
109  }
110 }
$searchCriteria
getByIdentifierNamespace($identifier, $namespace)
__construct(\Magento\Ui\Api\BookmarkRepositoryInterface $bookmarkRepository, \Magento\Framework\Api\FilterBuilder $filterBuilder, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, \Magento\Authorization\Model\UserContextInterface $userContext)