Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/11/2014, 03:32
Avatar de Dundee
Dundee
 
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 9 meses
Puntos: 8
Respuesta: Warning: spl_object_hash() expects parameter 1 to be object, integer given

Cita:
Iniciado por hhs Ver Mensaje
Muy bien el método setParentBranch espera recibir un objeto de tipo Book como "parent" perro para que esto sea posible primero debes de tener el parent antes que el libro.
Código PHP:
Ver original
  1. $em = $this->getDoctrine()->getManager();
  2.  
  3. $parent_book = new Book();
  4. $parent_book->setPhrase('Continua...');
  5.  
  6. //guardas parent
  7. $em->persist($parent_book);
  8.  
  9. $book = new Book();
  10. $book->setPhrase('Bla, bla..');
  11. $book->setParentBranch($parent_branch);
  12. $book->setCreatorUid(1);// si esto es una relación necesitas delcararla tambien
  13.  
  14. $em->persist($book);
  15. $em->flush();
Ok, gracias , lo he podido resolver con tu ayuda así:

En el controller

Código:
public function createAction(Request $request){
      
        $em = $this->getDoctrine()->getManager();
      
       // crea una task y le asigna algunos datos ficticios para este ejemplo
        $parent_book = new Book();
        $parent_book->setId(1);
        
         
        //guardas parent
        $em->persist($parent_book);

        $book = new Book();
        $book->setPhrase('Write a blog post');
        $book->setParentBranch($parent_book->getId());
       // $book->setDueDate(new \DateTime('tomorrow'));
        $book->setCreatorUid(1);
 
        $form = $this->createFormBuilder($book)
            ->add('phrase', 'text')
            ->add('parent_branch', 'integer')
            ->add('creator_uid', 'integer')
          //  ->add('dueDate', 'date')
            ->add('save', 'submit')
            ->getForm();
 
        $form->handleRequest($request);
 
        if ($form->isValid()) {
            // guardar la tarea en la base de datos

            return $this->redirect($this->generateUrl('task_success'));
        }
            return $this->render('BookMainBundle:Default:new.html.twig', array(
            'form' => $form->createView(),
        ));
    
    }
Y la entidad (modelo), he creado un nuevo setter para Id:
Código:
 public function setId($id)
    {
        return $this->id;
    }
Mil gracias
__________________
Videotutoriales de Drupal