Как встроить коллекцию форм в ветку, если некоторые поля находятся за пределами коллекции?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как встроить коллекцию форм в ветку, если некоторые поля находятся за пределами коллекции?

Сообщение Anonymous »

Я хочу создать форму Symfony, подобную изображению, которое я прикрепил.
Предположим, вы хотите добавить несколько задач для этой категории.
Некоторые поля имеют одинаковое значение для каждой задачи и отделены от коллекции. , например срок выполнения (это всего лишь пример, и некоторые поля имеют одинаковое значение).
Таким образом, пользователь выбирает только одну дату для набора задач и может нажать кнопку «Добавить элемент» и вставить заголовок и описание. .
Как разработать форму в Form Type и встроить ее в Twig?
Рассмотрите также возможность добавления внутренней проверки.
< img alt="введите здесь описание изображения" src="https://i.sstatic.net/nUIuI3PN.png" />

CategoryType in normal situations is like below, but I want to implement the form like the attached photo above.

// Category Type

class CategoryType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, [
'label' => 'Category Name',
])
->add('tasks', CollectionType::class, [
'entry_type' => TaskType::class,
'entry_options' => [
'label' => false,
],
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false, // Important to use this for collections
'label' => 'Tasks',
]);
}

// ... existing configureOptions method
}

// Category Entity

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity()
* @ORM\Table(name="categories")
*/
class Category
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;

/**
* @ORM\Column(type="string", length=255)
*/
private $name;

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

public function getName(): ?string
{
return $this->name;
}

public function setName(string $name): self
{
$this->name = $name;
return $this;
}
}

// Task Entity

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity()
* @ORM\Table(name="tasks")
*/
class Task
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;

/**
* @ORM\Column(type="string", length=255)
*/
private $title;

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

/**
* @ORM\Column(type="datetime")
*/
private $date;

/**
* @ORM\ManyToOne(targetEntity=Category::class)
* @ORM\JoinColumn(nullable=false)
*/
private $category;

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

public function getTitle(): ?string
{
return $this->title;
}

public function setTitle(string $title): self
{
$this->title = $title;
return $this;
}

public function getDescription(): ?string
{
return $this->description;
}

public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}

public function getDate(): ?\DateTimeInterface
{
return $this->date;
}

public function setDate(\DateTimeInterface $date): self
{
$this->date = $date;

return $this;
}

public function getCategory(): ?Category
{
return $this->category;
}

public function setCategory(?Category $category): self
{
$this->category = $category;
return $this;
}
}



Подробнее здесь: https://stackoverflow.com/questions/788 ... -the-colle
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»