Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][Symfony2][SF2] Problem z otrzymywaniem danych z bazy, Problem z otrzymywaniem danych z bazy
pav
post 30.05.2013, 16:15:53
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.01.2013

Ostrzeżenie: (0%)
-----


Witam,
Mam mały problem z wyświetleniem danych. Otóż chciałbym,aby na stronie wyswietliły się po 9 zwierząt (ich imiona, zdjecie oraz id, które przeniesie do szczegułów danego zwierzaka).Każdymu ze zwierzat ma wyświetlić po 1 zdjęciu.
Dla zilustrowania link do zdjecia


Są dwie tabele:
Zwierzeta: idzwierzatka, imie, opis itd.
Zdjecia: idzdjecia, nazwa_pliku, idzwierzatka itd.

Chodzi mi o to, aby wyciągnął z bazy imiona zwierząt i każdemu ze zwierząt dał po 1 zdjęciu jako miniaturkę.


Wydaje mi się, że powinienem to zrobić inner join'em, dlatego też taki pokaże kod:

Controller:

Kod
   public function kotyAction(Request $request)
    {
        $query = $this->getDoctrine()->getManager()
          ->createQuery("
                        SELECT z, w
                        FROM MultimediaAccountBundle:Zdjecia z
                        INNER JOIN MultimediaAccountBundle:Zwierze w
                        WHERE z.idzwierzatka LIKE w.idzwierzatka AND w.kot LIKE '1'
                        ")
                
          ->getResult();

          
       var_dump($query );

        $paginator  = $this->get('knp_paginator');
        $pagination = $paginator->paginate(
            $query,
            $this->get('request')->query->get('page', 1)/*page number*/,
            9/*limit per page*/
        );
          

        return $this->render('MultimediaStronaBundle:Koty:koty.html.twig', array(
            'pagination' => $pagination,
            'query' => $query
                ));

          
    }



Strona w twig :
Kod
<table>
    {# table body #}
    {% for zwierze in pagination %}
     {% if loop.index is odd %} {% endif %}
    <div class="row-fluid">
    <ul class="thumbnails">
            {% if loop.index0 is divisibleby(3) and loop.index0 != 0 %}
    </ul>
        </div>
        <div class="row-fluid">
            <ul class="thumbnails">
                    {% endif %}
                <li class="span4">
                    <div class="thumbnail">
                        <div class="caption">
                            <center>
                                
                            <h2>{#{ zwierze.idzwierzatka }#}{{ zwierze.imie }}</h2>
                                {#{ dump(pagination) }#}

                                </center>
                            <p><a  href="{{ url('KotSzczegoly', {'idzwierzatka':  zwierze.idzwierzatka }) }}">
                                   {% for zdjecie in query %}
                                        <img src="{{ asset('zdjecia/zwierzeta/') }}{{ zdjecie.imageName }}" class="img-rounded" />
                                   {% endfor %}      

                                </p>
                                <center>
                             <p><a class="btn" href="{{ path('KotSzczegoly', {'idzwierzatka':  zwierze.idzwierzatka }) }}">Zobacz go &raquo;</a></p>
                                </center>  
                        </div>
                    </div>
               </li>
              {% endfor %}
              
            </ul>
        </div>
        <div class="navigation">
            {{ knp_pagination_render(pagination, null, {}, {'alignment': 'center'}) }}
        </div>
</table>



Numeracja stron jest z KNP Paginator. Po takim kodzie strona wygląda:
wyglada tak...


A var dump query:
Kod
array (size=9)
  0 =>
    object(Multimedia\AccountBundle\Entity\Zdjecia)[2413]
      private 'idzdjecia' => int 8
      protected 'image' =>
        object(Symfony\Component\HttpFoundation\File\File)[2481]
      protected 'imageName' => string '517ee52260453.jpeg' (length=18)
      private 'idzwierzatka' => int 2
      public 'path' => null
  1 =>
    object(Multimedia\AccountBundle\Entity\Zwierze)[2458]
      protected 'idzwierzatka' => int 2
      protected 'imie' => string 'Maciuś' (length=7)
      protected 'rasa' => null
      protected 'kot' => boolean true
      protected 'pies' => boolean false
      protected 'opis' => string 'Był to bardzo mały kotek, o ślicznych czarno-białych łapkach.' (length=66)
      protected 'data_urodzenia' =>
        object(DateTime)[2479]
          public 'date' => string '2013-03-04 00:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'UTC' (length=3)
      protected 'data_rejestracji' =>
        object(DateTime)[2480]
          public 'date' => string '2013-03-19 00:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'UTC' (length=3)
      protected 'zdjecia' =>
        object(Doctrine\ORM\PersistentCollection)[2495]
          private 'snapshot' =>
            array (size=0)
              ...
          private 'owner' =>
            &object(Multimedia\AccountBundle\Entity\Zwierze)[2458]
          private 'association' =>
            array (size=15)
              ...
          private 'em' =>
            object(Doctrine\ORM\EntityManager)[293]
              ...
          private 'backRefFieldName' => string 'zwierze' (length=7)
          private 'typeClass' =>
            object(Doctrine\ORM\Mapping\ClassMetadata)[2459]
              ...
          private 'isDirty' => boolean false
          private 'initialized' => boolean false
          private 'coll' =>
            object(Doctrine\Common\Collections\ArrayCollection)[2483]
              ...
  2 =>
    object(Multimedia\AccountBundle\Entity\Zdjecia)[2457]
      private 'idzdjecia' => int 9
      protected 'image' =>
        object(Symfony\Component\HttpFoundation\File\File)[2501]
      protected 'imageName' => string '517fd6a07a5d6.jpeg' (length=18)
      private 'idzwierzatka' => int 2
      public 'path' => null
  3 =>
    object(Multimedia\AccountBundle\Entity\Zdjecia)[2499]
      private 'idzdjecia' => int 10
      protected 'image' =>
        object(Symfony\Component\HttpFoundation\File\File)[2503]
      protected 'imageName' => string '518699dff14c5.jpeg' (length=18)
      private 'idzwierzatka' => int 2
      public 'path' => null
  4 =>
    object(Multimedia\AccountBundle\Entity\Zdjecia)[2504]
      private 'idzdjecia' => int 11
      protected 'image' =>
        object(Symfony\Component\HttpFoundation\File\File)[2506]
      protected 'imageName' => string '51869a01e8e29.jpeg' (length=18)
      private 'idzwierzatka' => int 2
      public 'path' => null
  5 =>
    object(Multimedia\AccountBundle\Entity\Zdjecia)[2500]
      private 'idzdjecia' => int 12
      protected 'image' =>
        object(Symfony\Component\HttpFoundation\File\File)[2508]
      protected 'imageName' => string '51869a3d13cc6.jpeg' (length=18)
      private 'idzwierzatka' => int 2
      public 'path' => null
  6 =>
    object(Multimedia\AccountBundle\Entity\Zdjecia)[2502]
      private 'idzdjecia' => int 13
      protected 'image' =>
        object(Symfony\Component\HttpFoundation\File\File)[2510]
      protected 'imageName' => string '518cca6b9c462.jpeg' (length=18)
      private 'idzwierzatka' => int 2
      public 'path' => null
  7 =>
    object(Multimedia\AccountBundle\Entity\Zdjecia)[2507]
      private 'idzdjecia' => int 15
      protected 'image' =>
        object(Symfony\Component\HttpFoundation\File\File)[2512]
      protected 'imageName' => string '51960585745bf.jpeg' (length=18)
      private 'idzwierzatka' => int 4
      public 'path' => null
  8 =>
    object(Multimedia\AccountBundle\Entity\Zwierze)[2509]
      protected 'idzwierzatka' => int 4
      protected 'imie' => string 'aaaaaaaaa' (length=9)
      protected 'rasa' => null
      protected 'kot' => boolean true
      protected 'pies' => boolean false
      protected 'opis' => string 'aaaaas' (length=6)
      protected 'data_urodzenia' =>
        object(DateTime)[2460]
          public 'date' => string '2009-05-18 00:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'UTC' (length=3)
      protected 'data_rejestracji' =>
        object(DateTime)[2478]
          public 'date' => string '2008-01-01 00:00:00' (length=19)
          public 'timezone_type' => int 3
          public 'timezone' => string 'UTC' (length=3)
      protected 'zdjecia' =>
        object(Doctrine\ORM\PersistentCollection)[2511]
          private 'snapshot' =>
            array (size=0)
              ...
          private 'owner' =>
            &object(Multimedia\AccountBundle\Entity\Zwierze)[2509]
          private 'association' =>
            array (size=15)
              ...
          private 'em' =>
            object(Doctrine\ORM\EntityManager)[293]
              ...
          private 'backRefFieldName' => string 'zwierze' (length=7)
          private 'typeClass' =>
            object(Doctrine\ORM\Mapping\ClassMetadata)[2459]
              ...
          private 'isDirty' => boolean false
          private 'initialized' => boolean false
          private 'coll' =>
            object(Doctrine\Common\Collections\ArrayCollection)[2515]
              ...



Proszę o pomoc.

Dziękuję.

Ten post edytował pav 31.05.2013, 09:58:50
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 00:51