Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Empezando en Symfony: problema con Doctrine y MsSQL

Estas en el tema de Empezando en Symfony: problema con Doctrine y MsSQL en el foro de Symfony en Foros del Web. Hola me llamo Ezequiel, estoy empezando en este mundo de PHP y Symfony. He estado leyendo algunos manuales y estoy tratando de aplicar lo aprendido ...
  #1 (permalink)  
Antiguo 28/06/2013, 12:21
 
Fecha de Ingreso: junio-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Empezando en Symfony: problema con Doctrine y MsSQL

Hola me llamo Ezequiel, estoy empezando en este mundo de PHP y Symfony. He estado leyendo algunos manuales y estoy tratando de aplicar lo aprendido a algunos ejemplos...

Les paso a comentar, espero ser lo más claro posible.

Estoy queriendo implementar un sencillo ejemplo de manejo de datos a través de Doctrine, en el que se puedan guardar tareas a realizar en una determinada fecha; algo como esto:


Llevé a cabo la conexión con SQL Server 2012, y puedo guardar los datos de los formularios en una tabla. Ahora el problema es cuando los quiero recuperar: quiero utilizar la función findAll() para que me devuelva todas las tareas de la tabla pero no me devuelve nada y no sé en qué estoy fallando. Les dejo el código de la función show:

Código:
public function showAction()
    {
        $tasks = $this->getDoctrine()
            ->getRepository('AcmeTaskBundle:Task')
            ->findAll();                    
        
        $form = $this->createFormBuilder($tasks)
            ->add('task', 'text')
            ->add('dueDate', 'date')
            ->getForm();
        
        return $this->render('AcmeTaskBundle:Default:show.html.twig', array(
            'form' => $form->createView(),
        ));
    }
Y el código de la plantilla show.html.twig:
Código:
<form action="{{ path('task') }}" method="post" {{ form_enctype(form) }}>
    <h3>Tareas:</h3>
    
    <table border="1">
        <tr>
            <th>Tarea</th>
            <th>Fecha</th>
        </tr>
        {% for tasks in form %}
        <tr>
            <td>{{ form_widget(form.task) }}</td>
            <td>{{ form_widget(form.dueDate) }}</td>
        </tr>
        {% endfor %}
    </table>
</form>
Como resultado obtengo esto:


Si en lugar de utilizar findAll() utilizo por ejemplo: find($id='1') funciona correctamente y me devuelve la tarea con ese id.

Si no se entendió bien me dicen y trato de explicarlo mejor, así como si necesitan algún otro código.


Cualquier ayuda es bienvenida. ¡Gracias de antemano!




Edito, olvidé otra duda que tengo:
Tengo los siguientes metadatos de la clase Task:
Código:
Acme\TaskBundle\Entity\Task:
    type: entity
    table: tarea
    id:
        id:
            type: integer
            generator:  { strategy: AUTO }
    fields:
        task:
            type: string
            length: 10
        dueDate:
            type: date
Por lo que estuve leyendo "generator: { strategy: AUTO }" me va generando los id en forma creciente automáticamente, sin embargo no me funciona. Los demás campos se guardan correctamente. Todo esto usando SQL Server 2012. Aclaro que coloqué manualmente los id de las tareas para probar las funciones find.
¿Alguien sabe que puede estar fallando?

¡Gracias nuevamente!

Última edición por el_oto; 28/06/2013 a las 12:45
  #2 (permalink)  
Antiguo 28/06/2013, 13:52
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Empezando en Symfony: problema con Doctrine y MsSQL

Que es lo que deseas lograr exactamente ?, una lista de formularios, uno por cada tarea ?, porque le estas pasando al builder una colección cuando en realidad espera una entidad(por esto es que funciona con el find ;))

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 28/06/2013, 16:42
 
Fecha de Ingreso: junio-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Empezando en Symfony: problema con Doctrine y MsSQL

Ya logré que me muestre todas las tareas. Lo borraría del post principal pero no puedo editar. Me falta hacer andar el generador de id automático (la parte del generator: { strategy: AUTO }).

Gracias por responder masterpuppet, justamente le estaba pifiando al pasarle una colección al builder.

Última edición por el_oto; 29/06/2013 a las 11:06
  #4 (permalink)  
Antiguo 20/07/2013, 13:49
 
Fecha de Ingreso: julio-2013
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Empezando en Symfony: problema con Doctrine y MsSQL

Hola, estoy comenzando a programar con symfony y netbeans pero me sale un error cuando hago correr los fixtures el error es el siguiente:

Couldn't call Doctrine_Core::set(), second argument should be an instance of Doctrine_Record or Doctrine_Null when setting one-


Este error ocurre cuando en el fixture quiero llamar a otra tabla por ejemplo puedo tener el id de venta y el id de empleado y no me correo, alguien me podría ayudar por favor?

Gracias
  #5 (permalink)  
Antiguo 20/07/2013, 14:06
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Empezando en Symfony: problema con Doctrine y MsSQL

@nerds, te sugiero que crees un thread aparte, tu pregunta nada tiene que ver con este thread, también te sugiero que en el thread aclares las versiones que estas utilizando ya que por lo que muestras es Doctrine 1.x
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 20/07/2013, 14:18
 
Fecha de Ingreso: julio-2013
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Empezando en Symfony: problema con Doctrine y MsSQL

Hola Masterpuppet gracias x tu respuesta, pero a q te refieres exactamente q haga otro thread?, el mensaje de error me sale cuando hago correr el fixture, cuando hago correr un fixture q solo tiene un ID como por ejm empleado corre normal y me da los datos en pgAdmin pero cuando quiero hacer correr otro fixture donde ya existe 2 ID por ejm dentro de venta esta el id de venta y llama a empleado dentro de la misma tabla entonces ahí me sale el error:

Couldn't call Doctrine_Core::set(), second argument should be an instance of Doctrine_Record or Doctrine_Null when setting one-to-one references.

Nota: la base de datos conectada con netbeans es postgres pgAdminIII

Etiquetas: doctrine, empezando, mssql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:51.