persistir entity relacionado

3 views
Skip to first unread message

Erick Hernandez

unread,
Dec 15, 2015, 11:36:24 PM12/15/15
to Symfony-Ven
Tengo lo siguiente:

class Usuarios implements UserInterface, \Serializable
{
   
/**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */

   
private $id;

   
/**
     * @var string
     *
     * @ORM\Column(name="nom", type="string", length=150)
     */

   
private $nom;

   
/**
     * @var string
     *
     * @ORM\Column(name="username", type="string", length=100)
     */

   
private $username;

   
/**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=100)
     */

   
private $password;

   
/**
     * @var string
     *
     * @ORM\Column(name="salt", type="string", length=100)
     */

   
private $salt;

   
/**
     * @var string
     *
     * @ORM\Column(name="correo", type="string", length=100)
     */

   
private $correo;

   
/**
     * @var \DateTime
     *
     * @ORM\Column(name="fecha", type="datetime")
     */

   
private $fecha;
   
   
/**
     * @ORM\ManyToMany(targetEntity="Grupos")
     * @ORM\JoinTable(name="_usuarios_grupos",
     *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id", onDelete="CASCADE")}
     *      )
     **/

   
private $grupos;

y quiero guardar un nuevo usuario a mano:

$userAdmin = new Usuarios();
$factory
= $this->container->get('security.encoder_factory');
$encoder
= $factory->getEncoder($userAdmin);
$password
= $encoder->encodePassword('123456', $userAdmin->getSalt());
$userAdmin
->setNom('Pedro Perez');
$userAdmin
->setUsername('admin');
$userAdmin
->setPassword($password);
$userAdmin
->setCorreo('w...@pedroperez.com');
$userAdmin
->setfecha(new \DateTime("now"));
$manager
->persist($userAdmin);

Pero llevo horas buscando y no se como debo asociarle el grupo, ayuda por favor.

Carlos A Salazar

unread,
Dec 16, 2015, 2:12:59 AM12/16/15
to symfo...@googlegroups.com

Bueno por lo que veo también te falta el grupo debes crear un new grupos y asignarlo, ahora si el grupo ya existe entonces hacer un find por id y asignarlo a grupos y yáp eso debería
Luego lanzas el acción o el fixture donde estés haciendo la adición de agregar uno nuevo y listo!!

--
Has recibido este mensaje porque estás suscrito al grupo "Symfony-Ven" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a symfony-ven...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/symfony-ven/26f38ea2-7445-4e2e-a06a-15e0ee79c172%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Carlos A Salazar

unread,
Dec 16, 2015, 2:18:44 AM12/16/15
to symfo...@googlegroups.com

A perdona creó q no te respondo bien aver
Para el grupo lo que dije new grupos si es nuevo asignas todos los datos a grupos y luego al user
$user->ser grupos($elgruponuevo)
Si ya existe el grupo pues haces un find por id por ejemplo o un findOne y eso te devuelve 1 un sólo objeto y haces el setGrupos  con eso ya no te machaques con que tiene una tabla i termedia con doctrine eso es transparente.

Ahora si lo que quieres es asociarle varios grupos necesitas pasarle una colección de grupos

El 16/12/2015 5:36 a. m., "Erick Hernandez" <takashi...@gmail.com> escribió:

Carlos A Salazar

unread,
Dec 16, 2015, 2:23:31 AM12/16/15
to symfo...@googlegroups.com

Por otro lado
No sería mejor un oneTomany es decir
Un usuario tiene .muchos grupos y varios grupos están asociados a 1 usuario ???
Creó q te resolvería también varias cosas no se q intentas hacer pero si por ejemplo buscó un grupo específico este me podría devolver todos los usuarios de ese grupo y al contrario un usuario me devolvería todos los grupos a los q pertenece...

Takashi

unread,
Dec 16, 2015, 6:51:28 PM12/16/15
to symfo...@googlegroups.com
Ya lo solucione, gracias por su ayuda, utilice el comando doctrine:generate:entities en la consola y me genero el metodo addGrupo() y listo

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Erick Hernández
Ingeniero En Informática - Desarrollador Web
http://www.dragonrock.com.ve

Has recibido este mensaje porque estás suscrito a un tema del grupo "Symfony-Ven" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/symfony-ven/kOvDPqeF5y8/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a symfony-ven...@googlegroups.com.

Para publicar en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages