Поддерживает ли EasyAdmin классы сущностей с аргументами конструктора для свойств, которые не допускают значения NULL? EasyAdmin создает экземпляр класса сущности, даже если вы нажмете кнопку «Добавить», верно? К сожалению, это приводит к ошибке «Слишком мало аргументов для функции __construct ()». У вас есть решение этой проблемы?
Я обычно использую конструктор для свойств сущности, которые не допускают значения NULL. К сожалению, EasyAdmin выдает подобные ошибки, когда я нажимаю, например, Add FiscalYear
кнопка для создания нового объекта сущности (FiscalYear
в моем примере):
Too few arguments to function App\Entity\FiscalYear::__construct(), 0 passed in /myProject/vendor/easycorp/easyadmin-bundle/src/Controller/AdminControllerTrait.php on line 618 and exactly 2 expected
Как я могу предотвратить эти ошибки? Как вы можете видеть в следующем классе сущностей, два аргумента конструктора представляют данные, которые должны быть отправлены через форму:
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\FiscalYearRepository")
*/
class FiscalYear
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\Column(type="integer")
*/
private int $title;
/**
* @ORM\Column(type="boolean", options={"default": 0})
*/
private bool $completed = false;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Company", inversedBy="fiscalYears")
* @ORM\JoinColumn(nullable=false)
*/
private Company $company;
public function __construct(int $title, Company $company)
{
$this->title = $title;
$this->company = $company;
}
public function getId(): ?int
{
return $this->id;
}
public function getTitle(): int
{
return $this->title;
}
public function setTitle(int $title): void
{
$this->title = $title;
}
public function getCompleted(): bool
{
return $this->completed;
}
public function setCompleted(bool $completed): void
{
$this->completed = $completed;
}
public function getCompany(): Company
{
return $this->company;
}
public function setCompany(Company $company): void
{
$this->company = $company;
}
}
Есть ли возможность позволить EasyAdmin отображать форму «создать новый объект сущности» без создания экземпляра класса сущности?