Я пытаюсь создать экземпляр объекта домена в моем контроллере, но получаю эту ошибку "Попытка вызова функции" getPosition "из пространства имен" App \ Controller "".
Я надеюсь, что вы можете мне помочь, с этой проблемой. Это я ошибка
Но я получил и установил, почему он не находит его?
ApiController
<?php
namespace App\Controller;
use App\Repository\DomainRepository;
use FOS\RestBundle\Controller\AbstractFOSRestController;
use GeoIp2\Database\Reader;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
use FOS\RestBundle\Controller\Annotations as Rest;
use Symfony\Component\HttpFoundation\Request;
use FOS\RestBundle\View\View;
use Symfony\Component\Mailer\MailerInterface;
use App\Entity\Domain;
/**
* @Route("/api")
*/
class ApiController extends AbstractFOSRestController
{
/**
* @throws
* @return JsonResponse
* @Rest\Get("/domain", name="get_domain")
* @Rest\Get("/domain/{blocked}")
* @param Reader $reader
* @param Request $request
* @param DomainRepository $domainRepository
*/
public function getDomain(Request $request, Reader $reader, DomainRepository $domainRepository, MailerInterface $mailer): JsonResponse
{
$record = $reader->country('87.99.79.119');
$code = $record->country->isoCode;
$domain = $domainRepository->getDomain($code);
$ip = $request->getClientIp();
if ($request->isXmlHttpRequest())
$domain = $domainRepository->getDomain($code);
$position = getPosition();
//
// $email = (new Email())
// ->from('noreply@makaobet.com')
// ->to('support@makaobet.com')
//// ->cc('cc@example.com')
//// ->bcc('bcc@example.com')
//// ->replyTo('fabien@example.com')
//// ->priority(Email::PRIORITY_HIGH)
// ->subject('Domain Error')
// ->html($domain->getDomain() . ' have problem!');
//
// $mailer->send($email);
return new JsonResponse(
[
'status' => 'ok',
'domain' => $domain->getDomainName()
], 200);
}
}
Доменная сущность
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity(repositoryClass="App\Repository\DomainRepository")
*/
class Domain
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $domain_name;
/**
* @ORM\Column(type="array")
*/
private $blocked_countries;
/**
* @Gedmo\SortablePosition
* @ORM\Column(type="integer")
*/
private $position;
public function getId(): ?int
{
return $this->id;
}
public function getDomainName(): ?string
{
return $this->domain_name;
}
public function setDomainName(string $domain_name): self
{
$this->domain_name = $domain_name;
return $this;
}
public function getBlockedCountries(): ?array
{
return $this->blocked_countries;
}
public function setBlockedCountries(array $blocked_countries): self
{
$this->blocked_countries = $blocked_countries;
return $this;
}
public function getPosition(): ?int
{
return $this->position;
}
public function setPosition($position): self
{
$this->position = $position;
return $this;
}
}
Как я могу сделать эту работу ???