@shevchenko__k
Помогаю новорожденным web программистам

Как мне сделать в symfony 4 checkbox поля?

Здравствуйте, помогите пожалуйста сделать поля checkbox в symfony 4 ?
Суть проблемы.
У меня есть чекбоксы с продуктами которые можно выделять галочками
5d1c4e11373ba999735240.jpeg
Эти продукты привязаны к компании в отношении много ко многим. все бы ничего казалось, ну примени Entity type и нет проблем но у меня есть еще поля Подключить по умолчанию и Принудительное подключение которые хранятся в той же таблице что и id компании и продуктов (проблема в том что таблица уже есть и ее изменять нельзя. в этом вся и сложность.) Подскажите пожалуйста что можно сделать ?
Может это поможет ?
это связь с AdditionalCompany.php в сущности Company.php
/**
     * @ORM\OneToMany(targetEntity="App\Entity\AdditionalCompany", mappedBy="company", cascade={"persist"})
     */
    private $additionalCompanies;
    public function __construct()
    {
        $this->additionalCompanies = new ArrayCollection();
    }
/**
     * @return Collection|AdditionalCompany[]
     */
    public function getAdditionalCompanies(): Collection
    {
        return $this->additionalCompanies;
    }

    public function addAdditionalCompany(AdditionalCompany $additionalCompany): self
    {
        if (!$this->additionalCompanies->contains($additionalCompany)) {
            $this->additionalCompanies[] = $additionalCompany;
            $additionalCompany->setCompany($this);
        }

        return $this;
    }

    public function removeAdditionalCompany(AdditionalCompany $additionalCompany): self
    {
        if ($this->additionalCompanies->contains($additionalCompany)) {
            $this->additionalCompanies->removeElement($additionalCompany);
            // set the owning side to null (unless already changed)
            if ($additionalCompany->getCompany() === $this) {
                $additionalCompany->setCompany(null);
            }
        }

        return $this;
    }

Это сама сущность Additional company

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\AdditionalCompaniesRepository")
 * @ORM\Table(name="additional_companies", uniqueConstraints={
 *      @ORM\UniqueConstraint(name="id", columns={"idcompany", "idproduct"})
 * })
 */
class AdditionalCompany
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\CompanyCard", inversedBy="additionalCompanies")
     * @ORM\JoinColumn(name="idcompany", referencedColumnName="idcomp_card")
     */
    private $company;
    
    /**
     * @ORM\Column(type="boolean", nullable=true)
     */
    private $is_default;

    /**
     * @ORM\Column(type="boolean", nullable=true)
     */
    private $is_forced;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\AdditionalProduct", inversedBy="additionalCompanies")
     */
    private $product;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getCompany(): ?CompanyCard
    {
        return $this->company;
    }

    public function setCompany(?CompanyCard $company): self
    {
        $this->company = $company;

        return $this;
    }

    public function getIsDefault(): ?bool
    {
        return $this->is_default;
    }

    public function setIsDefault(?bool $is_default): self
    {
        $this->is_default = $is_default;

        return $this;
    }

    public function getIsForced(): ?bool
    {
        return $this->is_forced;
    }

    public function setIsForced(?bool $is_forced): self
    {
        $this->is_forced = $is_forced;

        return $this;
    }

    public function getProduct(): ?AdditionalProduct
    {
        return $this->product;
    }

    public function setProduct(?AdditionalProduct $product): self
    {
        $this->product = $product;

        return $this;
    }
}

  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 1
mad_maximus
@mad_maximus
Мапить форму можно не только на сущность, но и на собственные структуры данных. Другими словами:
$resolver->setDefaults([
            'data_class' => // ссылка на класс
        ]);

Это вам поможет построить ту структуру так, как вам удобно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы