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

Как сохранить checkbox list в Symfony?

Здравствуйте прмогите с задачей.
Суть задачи:
Есть сущность CompanyService в ней две колонки company_id и service_id.
И есть сущность Service в ней хранится сервисы.
Мне надо заполнить сущность CompanyService тем что лежит в Service
И есть сущность Company в которой хранятся коллекция CompanyService

CompanyService
<?php

namespace App\Entity;

use App\Repository\CompanyServiceRepository;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass=CompanyServiceRepository::class)
 */
class CompanyService
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity=Company::class, inversedBy="companyServices")
     */
    private $Company;

    /**
     * @ORM\ManyToOne(targetEntity=Service::class, inversedBy="companyServices")
     */
    private $service;

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

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

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

        return $this;
    }

    public function getService(): ?Service
    {
        return $this->service;
    }

    public function setService(?Service $service): self
    {
        $this->service = $service;

        return $this;
    }
}


Company.php
/**
     * @ORM\OneToMany(targetEntity=CompanyService::class, mappedBy="Company", orphanRemoval=true,cascade={"persist"})
     */
    private $companyServices;

public function __construct()
    {
        $this->companyServices = new ArrayCollection();
    }

/**
     * @return Collection|CompanyService[]
     */
    public function getCompanyServices(): Collection
    {
        return $this->companyServices;
    }

    public function addCompanyService(CompanyService $companyService): self
    {
        if (!$this->companyServices->contains($companyService)) {
            $this->companyServices[] = $companyService;
            $companyService->setCompany($this);
        }

        return $this;
    }

public function removeCompanyService(CompanyService $companyService): self
    {
        if ($this->companyServices->contains($companyService)) {
            $this->companyServices->removeElement($companyService);
            // set the owning side to null (unless already changed)
            if ($companyService->getCompany() === $this) {
                $companyService->setCompany(null);
            }
        }

        return $this;
    }


CompanyType.php
->add('companyServices', EntityType::class,[
                'class'=>Service::class,
                'attr'=>['class'=>'company_service form-control'],
                'query_builder'=>function(ServiceRepository $sr){
                    return $sr->findOwnerServices();
                },
                'choice_label' => 'service',
                'multiple' => true,
                'expanded' => true,
                'by_reference' => false,
            ])


Подскажите пожалуйста, в чем проблема ?
Суть задания такое: При создании компании есть список checkbox который выбирается из Service и добавляется в CompanyService
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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