Ответы пользователя по тегу Symfony
  • Как реализовать передачу объектов сущности в форму со множественным выбором?

    @e-hot Автор вопроса
    Спасибо за ответ. Стандартное решение в моем случае почему-то не получилось ( еще поэкспериментировал и с collection ), поэтому пришлось решить задачу другим путем - передачей в класс формы двух массивов: один - полный перечень городов, второй - перечень городов заданного юзера. В классе формы эти два массива указал в настройках поля типа choice, где:
    'choices' => array( полный перечень городов ),
    'preferred_choices' => array( перечень городов заданного юзера ),
    'multiple' => true,


    В созданный список со множественным выбором довольно-таки быстро грузится более 3 000 городов.
    Все - всем спасибо.
    Ответ написан
    Комментировать
  • Как в одно поле формы загнать более одного параметра сущности в Symfony 2?

    @e-hot Автор вопроса
    Всем спасибо - проблема решена довольно-таки просто! Как я и предположил теперь: в Entity в геттер добавляем нужный параметр:
    /**
         * Get city_name
         * @return string 
         */
        public function getCityName()
        {
            return $this->city_name . ' : ' . $this->getDistrictName();
        }

    или
    /**
         * Get city_name
         * @return string 
         */
        public function getCityName()
        {
            return $this->getDistrictName() . ' => ' . $this->city_name);
        }
    Ответ написан
    Комментировать
  • Авторизация в Symfony2 - User account is disabled. Как починить?

    @e-hot Автор вопроса
    Спасибо огромное за подсказку!!! Просмотрел у себя сущность User - в ней у меня все прописано как в документации - класс User реализуется от AdvancedUserInterface, есть метод isEnabled() - по идее все должно работать.
    Посмотрел в БД в таблицу User, т.к. смутило в классе User описание:
    /**
    * @ORM\Column(name="is_active", type="integer")
    */
    private $isActive;

    в таблице User для is_active тип данных bit, изменил на boolean и в классе User в:
    /**
    * @ORM\Column(name="is_active", type="boolean")
    */
    private $isActive;

    - все заработало! Вот что значит невнимательность... Но странно, почему тогда у меня на локальной версии проекта не проявлялась такая ситуация...

    Спасибо.
    Ответ написан
  • Почему на VDS-хостинге зашкаливает использование ОП?

    @e-hot Автор вопроса
    Результаты top:
    a4955b36480443f6a902a42be4b24228.pngd7a0e0e3bab043db85bca33accb9262b.png2673cebede164c8f98e86b08096879c2.png
    - жду комментариев. Спасибо.
    Ответ написан
    Комментировать
  • Как в ОС UBUNTU инициировать работу контроллеров ( сервисов, отдельных php-скриптов или целых бандлов) Symfony2?

    @e-hot Автор вопроса
    RabbitMqBundle - имеет смысл юзать это решение? Оно стоит того?
    Ответ написан
    Комментировать
  • При редактировании коллекции сущностей не сохраняются новые сущности - почему?

    @e-hot Автор вопроса
    Спасибо за ответ.

    Про то, чтобы убрать ArrayCollection из Breakagedemand - я до этого тоже додумался уже после публикации темы :)

    Ваш вариант формы понятен - он у меня был изначален, но... этого мне достаточно, когда редактируется только один параметр и можно задавать для списка multiple или чекбоксы.
    У меня же сущность Test - это прототип сущности с 55 полями, среди которых 4 поля это коллекции форм, где в каждой форме помимо одного параметра в виде списка необходимо работать еще с двумя-тремя параметрами и здесь multiple уже не сработает, например:
    набор параметров в форме внутри коллекции:
    1. Тип поломки (выбираем из списка); 2. Кол-во поломок (указываем в поле text); 3. Стоимость (указываем в поле text).
    Соответственно, когда на странице добавляем новую форму поломки в коллекцию, у нас создается список для выбора типа и пустые text для кол-ва и стоимости.
    При этом данные из таких коллекций форм должны сохраняться в отдельные таблицы БД, где связь между этими таблицами с таблицей test осуществляется через id test. Это так - небольшое отступление.

    С остальными предложениями и вариантами буду разбираться - спасибо.
    Ответ написан
  • Отображение сущностей, их связей между собой. Как обращаться к ним из классов форм, в том числе внедренных?

    @e-hot Автор вопроса
    Ситуация (см. код ниже):
    Есть сущность Posout (оборудование), есть сущности Postype (тип оборудования) и Brand(бренд).
    Сущность Posout (оборудование) имеет ОДНОСТОРОННИЕ ManyToOne связи с Postype (тип оборудования) и Brand(бренд), соответственно через поля:
    /**
         * @var integer
         * @ORM\ManyToOne(targetEntity="Acme\AppBundle\Entity\Postype", inversedBy="postype_id")
         * @ORM\JoinColumn(name="postype_id", referencedColumnName="id")
         */
        private $postype;

    и
    /**
         * @var integer
         * @ORM\ManyToOne(targetEntity="Acme\AppBundle\Entity\Brand", inversedBy="posbrand_id")
         * @ORM\JoinColumn(name="posbrand_id", referencedColumnName="id")
         */
        private $posbrand;

    Двусторонняя связь не нужна, т.к. Postype и Brand - это уже готовые перечни значений в соответствующих таблицах БД, которые не будут редактироваться, дополняться или удаляться, будут просто тупо использоваться.

    Форма для создания нового оборудования (пока рассматриваю отдельно форму для создания и отдельно форму для редактирования оборудования) работает отлично через конструкции, типа:
    ...
    ->add( 'postype', new PostypeType() )
    ->add( 'posbrand', new BrandType() )
    ...

    - выводятся раскрывающиеся списки типов и брендов каждый в своем поле.

    Но у меня задача сделать форму редактирования оборудования (изменение типа и бренда), где в этих самых раскрывающихся списках текущие значения должны быть выделены как selected. В связи с такой постановкой задачи у меня возник общий вопрос:
    как обращаться из класса формы (возможно, embedded) к связанным между собой сущностям?

    Если опять что-то не понятно в описании, пишите - расшифрую.

    Сущность Posout (часть кода ненужными для понимания полями и с геттерами и сеттерами опущена):
    <?php
    namespace Acme\AppBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * Posout
     * @ORM\Table(name="posout")
     * @ORM\Entity(repositoryClass="Acme\AppBundle\Repository\PosoutRepository")
     */
    class Posout {
        /**
         * @var integer
         * @ORM\Column(name="id", type="bigint", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
        ...
        /**
         * @var integer
         * @ORM\ManyToOne(targetEntity="Acme\AppBundle\Entity\Postype", inversedBy="postype_id")
         * @ORM\JoinColumn(name="postype_id", referencedColumnName="id")
         */
        private $postype;
        
        /**
         * @var integer
         * @ORM\ManyToOne(targetEntity="Acme\AppBundle\Entity\Brand", inversedBy="posbrand_id")
         * @ORM\JoinColumn(name="posbrand_id", referencedColumnName="id")
         */
        private $posbrand;
    
        ...
    
        /**
         * Get id
         * @return integer 
         */
        public function getId()
        {
            return $this->id;
        }
    
        /**
         * Set postype
         * @param integer $postype
         * @return Posout
         */
        public function setPostype( $postype )
        {
            $this->postype = $postype;
            return $this;
        }
    
        /**
         * Get postype
         * @return integer 
         */
        public function getPostype()
        {
            return $this->postype;
        }
    
        /**
         * Set posbrand
         * @param integer $posbrand
         * @return Posout
         */
        public function setPosbrand( $posbrand )
        {
            $this->posbrand = $posbrand;
            return $this;
        }
    
        /**
         * Get posbrand_id
         * @return integer 
         */
        public function getPosbrand()
        {
            return $this->posbrand;
        }
    
        ...
    }


    Сущность Postype (часть кода ненужными для понимания полями и с геттерами и сеттерами опущена):
    <?php
    namespace Acme\AppBundle\Entity;use Doctrine\ORM\Mapping as ORM;
    
    /**
     * Postype
     * @ORM\Table(name="postype")
     * @ORM\Entity
     */
    class Postype {
        /**
         * @var integer
         * @ORM\Column(name="id", type="bigint")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        private $id;
    
        /**
         * @var integer
         * @ORM\Column(name="postype_id", type="integer")
         */
        private $postype_id;
    
        
        /**
         * @var string
         * @ORM\Column(name="postype_desc", type="string")
         */
        private $postype_desc;
        
        /**
         * @var string
         * @ORM\Column(name="postype_name", type="string")
         */
        private $postype_name;
        
        /**
         * Get id
         * @return integer 
         */
        public function getId()
        {
            return $this->id;
        }
    
        /**
         * Set postype_id
         * @param integer $postypeId
         * @return Postype
         */
        public function setPostypeId($postypeId)
        {
            $this->postype_id = $postypeId;
            return $this;
        }
    
        /**
         * Get postype_id
         * @return integer 
         */
        public function getPostypeId()
        {
            return $this->postype_id;
        }
        ...
    }


    И сущность Brand (часть кода ненужными для понимания полями и с геттерами и сеттерами опущена):
    <?phpnamespace Acme\AppBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * Brand
     * @ORM\Table(name="brand")
     * @ORM\Entity
     */
    class Brand {
        /**
         * @var integer
         * @ORM\Column(name="id", type="bigint")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        private $id;
    
        /**
         * @var integer
         * @ORM\Column(name="posbrand_id", type="bigint")
         */
        private $posbrand_id;
        
        /**
         * @var string
         * @ORM\Column(name="posbrand_name", type="string")
         */
        private $posbrand_name;
    
        /**
         * Get id
         * @return integer 
         */
        public function getId()
        {
            return $this->id;
        }
    
        /**
         * Set posbrand_id
         * @param integer $posbrandId
         * @return Brand
         */
        public function setPosbrandId($posbrandId)
        {
            $this->posbrand_id = $posbrandId;
            return $this;
        }
    
        /**
         * Get posbrand_id
         * @return integer 
         */
        public function getPosbrandId()
        {
            return $this->posbrand_id;
        }
        ...
    }
    Ответ написан
  • Symfony 2. Как вывести в форме value selected в списке внедренной формы?

    @e-hot Автор вопроса
    Спасибо всем за ответы и советы - пока ничего не помогло, поэтому я вчитываюсь в очередной раз в документацию по Доктрине 2 - здесь, я думаю, у меня имеются проблемы с пониманием отображения связей между сущностями, и документацию по формам и внедренным формам.
    В связи со всем этим у меня ситуация такова:
    1. Отображение связей между сущностями я поправил, т.е. в тестовом режиме из контроллера могу брать родительские сущности и через их свойства-поля запрашивать связанные (дочерние) сущности и, соответственно, их любые свойства-поля - итого: здесь все отлично, все настроено.
    2. Теперь я пытаюсь на все отображения сущностей и отображения связей между сущностями нахлобучить обращения из класса(ов) форм или другими словами: завязать работу форм на имеющиеся связанные сущности - вот здесь у меня и происходит клин. Читаю вдоль и поперек доки по формам и внедренным формам (субформам в качестве коллекции) и не могу осмыслить механизм того -
    и сам ВОПРОС:
    как поверх отображений связей в сущностях указывать связи между формами, базовой и внедренной в нее. На других форумах пишут, юзай документацию - там все есть, да, в документации есть про отображение связей - отдельно, про формы - отдельно. Не могу понять: для того, чтобы внедренные формы работали в базовой форме, я должен в родительскую сущность вводить дополнительное поле-свойство, чтобы через него впоследствии связывать коллекцию дочерних сущностей? Или я должен просто модифицировать имеющееся поле в родительской сущности под связывание? Помогите разобраться вот с этим моментом? Заранее благодарю.
    Ответ написан
    Комментировать