Я занимаюсь разработкой базового сайта социальной сети, и когда я пытаюсь вызвать функцию в моем репозитории (например, Exists), он ожидает экземпляр App \ Repository \ User вместо ожидания экземпляра App \ Entity \ User, хотя я явно настраиваю функцию для ожидания сущности, а не хранилища.
Вот код, приводящий к вызову моей функции:
/**
* @param $likeData
*/
public function addLike($likeData)
{
$em = $this->getEntityManager();
$userId = $likeData['userId'];
/** @var User $user */
$user = $this->userRepository->find($userId);
$entityType = $likeData['entityType'];
$likeType = $likeData['likeType'];
$likeToAdd = new UserLike();
$likeToAdd->setUser($user);
$likeToAdd->setType($likeType);
$likeAdded = true;
switch ($likeType) {
case UserLike::ENTITY_TYPE_POST:
$postId = $likeData['entityId'];
$post = $this->postRepository->find($postId);
if ($this->likeExists($post, $likeType, $user))
Вот функция:
/**
* @param $entity
* @param $likeType
* @param User $user
*/
public function likeExists($entity, $likeType, User $user)
{
$em = $this->getEntityManager();
if ($entity->getClassName == 'Post')
{
$like = $em->findBy(
['user' => $user],
['type' => $likeType],
['post' => $entity]
);
}
Я явно настраиваю его на ожидание объекта User, а не объекта UserRepository.
Я получаю следующую ошибку:
Аргумент 3, передаваемый в App \ Repository \ UserLikeRepository :: likeExists (), должен быть экземпляром App \ Repository \ User, экземпляр App \ Entity \ User данного