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

Bueno , después de darle unas vueltas, y también viendo parte de tu código , he podido hacerlo con un solo método así:

NOTA: He cambiado el nombre de la clase y de la ENTIDAD de Book a Branch.
DefaultController.php
Código:
public function createBranchAction(Request $request){
      
        $em = $this->getDoctrine()->getManager();
        $parent_branch = new Branch();

// Esto es solo un ejemplo, lógicamente el (2) debe existir en la BD previamente, por lo que se pasaría al método createBranchAction como argumento.
        $parent_branch = $em->getRepository('BranchMainBundle:Branch')->find(2);
         
        //guardas parent
        $em->persist($parent_branch);

        $branch = new Branch();
        $branch->setPhrase('Write a blog post');
        $branch->setParentBranch($parent_branch);
       // $book->setDueDate(new \DateTime('tomorrow'));
        $branch->setCreatorUid(1);
        $form = $this->createForm(new NewPhrase(), $branch);
        $form->handleRequest($request);
     
        if ($form->isValid()) {
            // guardar la tarea en la base de datos
            var_dump($branch);
            $em = $this->getDoctrine()->getManager();
            $em->persist($branch);
            $em->flush();

            return $this->redirect($this->generateUrl('task_success'));
        }
        // Default view.
            return $this->render('BranchMainBundle:Default:new.html.twig', array(
            'form' => $form->createView(),
        ));
    
    }
La clase externa que genera el form.
NewPhrase.php

Código:
<?php

// src/Acme/TaskBundle/Form/Type/TaskType.php
namespace Branch\MainBundle\Form\Phrase;
 
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
 
class NewPhrase extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('phrase', 'text', array('label'  => 'My phrase', 'max_length' => 500))
            ->add('parentBranch', 'entity', array(
            'class' => 'BranchMainBundle:Branch',
            ))

            ->add('creatorUid', 'integer')
            ->add('save', 'submit');
    }
 
    // unique identifier for this form.
    public function getName()
    {
        return 'phrase';
    }
}

Mil gracias por tu ayuda, me ha aclarado cosas que no entendía del todo bien.
__________________
Videotutoriales de Drupal