Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF][Symfony]Doctrine problem
bambam
post 3.10.2012, 15:30:16
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.09.2011

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


Witam, mam nastepujacy problem, przy najprostszym pobieraniu danych z bazy.

funkcja:

public function indexAction($category = "Sports", $subcategory = "")
{

$repository = $this->getDoctrine()->getRepository('MindMindBundle:Categories');
$p_category = $repository->findOneByName($category);

if (!$p_category) {
throw $this->createNotFoundException('Not found');
}


$subcategories = $repository->findByPid($p_category->getId());



return $this->render('MindMindBundle:Categories:categories.html.twig',
array('category' => $category,
'subcategories' => $subcategories,
)
);
}

Catchable Fatal Error: Object of class Mind\MindBundle\Entity\Categories could not be converted to string in E:\xampp\xampp\htdocs\Symfony\src\Mind\MindBundle\Controller\CategoriesController.php line 23

Czy ktos ma pojecie czemu sie tak dzieje questionmark.gif
w pliku encji ustawilem wszystkie zmienne na public jednak i tak nic to nie dalo, dlaczego doctrine chce konwertowac obiekt na string?, nie rozumiem;/


Problem wystepuje dokładnie tutaj:

$p_category = $repository->findOneByName($category);

gdy wyszukuje za pomoca

$p_category = $repository->find(1);

działa poprawnie. wiec musi chodzic o string





Prosze o pomc z gory dziekuję.

Ten post edytował bambam 3.10.2012, 17:56:43
Go to the top of the page
+Quote Post
nospor
post 3.10.2012, 18:28:36
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Z komunikatu wynika, że używasz obiektu klasy Categories zamiast tekstu. Co tu jest dla ciebie niezrozumiałego?

ps: i używaj bbcode do przedstawiania kodu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bambam
post 3.10.2012, 18:38:35
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.09.2011

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


@nospor rozumiem co znaczy blad, lecz nie robie tego wiec blad jest bledny ?


  1.  
  2. public function indexAction($name)
  3. {
  4.  
  5. $em = $this->getDoctrine()->getEntityManager(); // uruchamiam entity manager
  6. $entity = $em->getRepository('MindMindBundle:Categories')->findByName($name);
  7.  
  8. if (!$entity) {
  9. throw $this->createNotFoundException('Unable to find Job entity.');
  10. }
  11. //do tej pory jest ok po var_dump($enitity) widzę obiekt
  12.  
  13. $s = $entity->findAllByPid($entity->getId());
  14.  
  15. // Fatal error: Call to a member function findAllByPid() on a non-object in E:\xampp\xampp\htdocs\Symfony\src\Mind\MindBundle\Controller\CategoriesControlle
    r.php on line 27
  16.  
  17. // wiec jak to mozliwe ze 2 linijki nizej obiekt przestaje byc obiektem ?
  18.  
  19. return $this->render('MindMindBundle:Categories:categories.html.twig', array('category' => $name));
  20.  
  21. }
  22.  
  23.  
  24.  




Go to the top of the page
+Quote Post
nospor
post 3.10.2012, 18:42:40
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro rozumiesz błąd to naprawdę nie rozumiem w czym masz problem....

Komunikat błędu wyraźnie cię informuje, ze oczekuje tekstu. A ty zamiast tekstu podajesz mu obiekt klasy Categories. Pytam ponownie: czego w tym nie rozumiesz skoro twierdzisz że rozumiesz?

Zaś co do drugiego kodu z poprzedniego posta to zrób sobie poprostu
var_dump($entity);
tuż przed $s = $entity->findAllByPid($entity->getId());


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bambam
post 3.10.2012, 18:59:22
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.09.2011

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


  1. array(1) { [0]=> object(Mind\MindBundle\Entity\Categories)#318 (13) { ["active"]=> int(1) ["pid"]=> int(0) ["name"]=> string(6) "Nature" ["shortDescription"]=> NULL ["description"]=> NULL ["isActive"]=> bool(false) ["createdAt"]=> object(DateTime)#321 (3) { ["date"]=> string(20) "-0001-11-30 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(19) "America/Los_Angeles" } ["updatedAt"]=> object(DateTime)#322 (3) { ["date"]=> string(20) "-0001-11-30 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(19) "America/Los_Angeles" } ["homeImage"]=> NULL ["pubImage"]=> NULL ["urlPubImage"]=> NULL ["videoCount"]=> NULL ["id"]=> int(5) }
  2.  
  3.  


Zrobiłem var_dump jak mowisz i widać że $entity jest obiektem, nastepnie na tym obiekcie chce getter ktory mam zdefiniowany w encji.
Dla najprostszego przykładu:

$id = $entity->getId();

i to zwraca mi:

Fatal error: Call to a member function getId() on a non-object in E:\xampp\xampp\htdocs\Symfony\src\Mind\MindBundle\Controller\CategoriesController.php on line 24


więc jak możesz to prosze wytlumacz mi o co chodzi..
Go to the top of the page
+Quote Post
nospor
post 3.10.2012, 19:01:40
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Czyli mam rozumieć że masz tak:

  1. var_dump($entity);
  2. $id = $entity->getId();

powtarzam: dokładnie tak i kod ten jednocześnie wyświetla ci poprawny obiekt i zarazem komunikat błędy, że $entity nie jest obiektem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bambam
post 3.10.2012, 19:05:21
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.09.2011

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


dokładnie tak, nie wiem czy chodzi tutaj o konfiguracje Doctrine czy jakas inna rzecz, siedze nad tym juz pare dobrych godzin i zachodze w glowe co moze byc nie tak

kod php

  1.  
  2. $em = $this->getDoctrine()->getEntityManager();
  3. $entity = $em->getRepository('MindMindBundle:Categories')->findByName($name);
  4. //$entities = $em->getRepository('MindMindBundle:Categories')->findAll();
  5. if (!$entity) {
  6. throw $this->createNotFoundException('Unable to find Job entity.');
  7. }
  8.  
  9. var_dump($entity);
  10. $id = $entity->getId();
  11. echo $id;
  12.  


array(1) { [0]=> object(Mind\MindBundle\Entity\Categories)#318 (13) { ["active"]=> int(1) ["pid"]=> int(0) ["name"]=> string(6) "Nature" ["shortDescription"]=> NULL ["description"]=> NULL ["isActive"]=> bool(false) ["createdAt"]=> object(DateTime)#321 (3) { ["date"]=> string(20) "-0001-11-30 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(19) "America/Los_Angeles" } ["updatedAt"]=> object(DateTime)#322 (3) { ["date"]=> string(20) "-0001-11-30 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(19) "America/Los_Angeles" } ["homeImage"]=> NULL ["pubImage"]=> NULL ["urlPubImage"]=> NULL ["videoCount"]=> NULL ["id"]=> int(5) } }
Fatal error: Call to a member function getId() on a non-object in E:\xampp\xampp\htdocs\Symfony\src\Mind\MindBundle\Controller\CategoriesController.php on line 24



Ten post edytował bambam 3.10.2012, 19:08:45
Go to the top of the page
+Quote Post
nospor
post 3.10.2012, 19:10:42
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




...
No przecież na var_dump() widać jak wół że $entity to nie obiekt a tablica....

Dopiero pierwszy element tej tablicy to obiekt.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bambam
post 3.10.2012, 19:14:23
Post #9





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.09.2011

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


miales racje debil ze mnie tongue.gif dziekuje Ci bardzo za pomoc
Go to the top of the page
+Quote Post

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: 26.06.2025 - 13:32