Помогите пожалуйста делать таблицу в symfony 4 с полями idcompany, idproduct, is_default, is_forced
По сути это таблица многие ко многим где компании могут иметь много продуктов а продукты могут иметь много компаний. нет было бы проблем если бы не было этих двух полей is_default, is_forced. как мне сделать такую таблицу и как в два последних поля еще и заносить значения ?
Александр, я тоже так думаю но проблема в том что когда я пытаюсь создать миграцию он ругается что нет id. пропускает только тогда когда добавлю id а мне id не нужен в этой таблице
Александр, подскажите пожалуйста еще мне. я сделал все как вы мне написали но есть проблема в Cross должно попадать id продукта. Как это сделать ?
и еще мы же в CompanyType получается выводим Cross через CollectionType ?
shevchenko__k, id должен быть в cross таблице, это требование doctrine. В данному случае вам нужно отказаться от many-to-many и пересмотреть архитектуру базы данных, либо отказаться от doctrine ORM.
еще мы же в CompanyType получается выводим Cross через CollectionType ?
shevchenko__k, могу сказать только то, что у вас проблемы в архитектуре приложения. Doctrine ORM, а в следствии и формы не совместимы с тем, что вы реализуете на стороне базы данных. Таблица many-to-many не должна содержать иные поля, кроме product_id и company_id. Перерабатывайте ваши сущности так, чтобы они этому соответствовали. Либо, как я сказал выше, отказывайтесь от doctrine ORM.
Александр, я нашел в такую ссылку https://stackoverflow.com/questions/47244164/doctr... там написан по сути мой ответ но я не понимаю почему в первом ответе в type не buttons а buttonsToAdd и последнее в первом ответе в controller он дает ответ как мне надо но в его случае поле state он записывает статически а мне надо из формы. Подскажите пожалуйста. задание там такое же как у меня
shevchenko__k, чтобы было понятнее (Line = Company, State = Cross, Button = Product).
Вы не можете напрямую связать компанию и продукт, т.к. нет связи many-to-many. Но у вас так же нет списка cross, т.к. он создается по факту привязки продуктов к компании. У вас есть только список продуктов. Вы создаете виртуальное поле со списком продуктов в вашей форме "buttonsToAdd". А уже в controller-е на каждый выбранный продукт, вы вручную создаете entity Cross, где связываете продукт с компанией и вручную устанавливаете флаги.
Решение будет работать, но это явно кривая реализация, кривой архитектуры.
Александр, да я понял эти связи. и я понимаю что криво. проблема в том что поля is_default, is_forced надо заполнять из формочек. и почему он в этом решении написал поле buttonsToAdd а не buttons ? но самый главная проблема заносить поля is_default, is_forced из формочек. это тоже чекбоксы только product чекбоксы из базы а эти просто. может можно как то решить эту проблему ?