Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF2][Symfony2]AppBundle\Entity\Orders object not found.
Forum PHP.pl > Forum > PHP > Frameworki
Crash89
Tworząc nową akcję spotkałem się z takim problemem:
AppBundle\Entity\Orders object not found.
404 Not Found - NotFoundHttpException
C:\Users\rosmith\shrub_search\vendor\sensio\framework-extra-bundle\Request\ParamConverter\DoctrineParamConverter.php line 66


Tak jakby nie widział tego entity, adres jest wpisany poprawnie.
Używam Symfony 3.1

Poniżej jest kod gdzie tworzę instancję tej klasy.
  1. /**
  2.   * @Route("/order-without-pay", name="order_without_pay")
  3.   * @Method("GET")
  4.   */
  5. public function orderWithoutPayAction() {
  6. $em = $this->getDoctrine()->getManager();
  7. $cart = new Cart($em);
  8.  
  9. $ordersModel = new OrdersModel($em);
  10. $ordersModel->add($cart);
  11. }
  12.  
  13. //klasa ordersModel
  14. public function add($cart) {
  15. $orders = new Orders();
  16. var_dump($cart);
  17. die();
  18. }


Problem występuję przy wczytywaniu klasy Orders w przestrzeni nazw.
Wszystkie inne entity działają, w przestrzeni nazw ścieżka jest wpisana poprawnie.

Proszę o pomoc.
nospor
pokaz poczatek plik Orders.php
Crash89
Cytat(nospor @ 16.03.2018, 17:55:13 ) *
pokaz poczatek plik Orders.php



  1. namespace AppBundle\Entity;
  2.  
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use AppBundle\Entity\Payments;
  6. use AppBundle\Entity\OrdersProducts;
  7. use Gedmo\Mapping\Annotation as Gedmo;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9.  
  10. /**
  11.  * Orders
  12.  *
  13.  * @ORM\Table(name="orders")
  14.  * @ORM\Entity(repositoryClass="AppBundle\Repository\OrdersRepository")
  15.  * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
  16.  */
  17. class Orders


Tutaj jest wszystko co się dzieje przed definicją klasy
Pyton_000
Nie zaimportowałeś namespace dla Order
Crash89
Cytat(Pyton_000 @ 16.03.2018, 19:42:02 ) *
Nie zaimportowałeś namespace dla Order


Jest namespace AppBundle\Entity; na początku pliku Orders.php

Problem jest tylko przy tej akcji, akcje wygenerowane przez polecenie w konsoli doctrine (doctrine:generate:crud) działają.

Dodam jeszcze stack trace:

  1. Stack Trace
  2. in var\cache\dev\classes.php at line 7146 -
  3. }
  4. }
  5. if (null === $object && false === $configuration->isOptional()) {
  6. throw new NotFoundHttpException(sprintf('%s object not found.', $class));
  7. }
  8. $request->attributes->set($name, $object);
  9. return true;
  10. at DoctrineParamConverter ->apply (object(Request), object(ParamConverter))
  11. in var\cache\dev\classes.php at line 7326 +
  12. at ParamConverterManager ->applyConverter (object(Request), object(ParamConverter))
  13. in var\cache\dev\classes.php at line 7299 +
  14. at ParamConverterManager ->apply (object(Request), array('order' => object(ParamConverter)))
  15. in var\cache\dev\classes.php at line 7027 +
  16. at ParamConverterListener ->onKernelController (object(FilterControllerEvent), 'kernel.controller', object(TraceableEventDispatcher))
  17. at call_user_func (array(object(ParamConverterListener), 'onKernelController'), object(FilterControllerEvent), 'kernel.controller', object(TraceableEventDispatcher))
  18. in vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\WrappedListen
    er.php at line 61 +
  19. at WrappedListener ->__invoke (object(FilterControllerEvent), 'kernel.controller', object(ContainerAwareEventDispatcher))
  20. at call_user_func (object(WrappedListener), object(FilterControllerEvent), 'kernel.controller', object(ContainerAwareEventDispatcher))
  21. in var\cache\dev\classes.php at line 2173 +
  22. at EventDispatcher ->doDispatch (array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.controller', object(FilterControllerEvent))
  23. in var\cache\dev\classes.php at line 2088 +
  24. at EventDispatcher ->dispatch ('kernel.controller', object(FilterControllerEvent))
  25. in vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\TraceableEven
    tDispatcher.php at line 136 +
  26. at TraceableEventDispatcher ->dispatch ('kernel.controller', object(FilterControllerEvent))
  27. in vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php at line 141 +
  28. at HttpKernel ->handleRaw (object(Request), '1')
  29. in vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php at line 68 +
  30. at HttpKernel ->handle (object(Request), '1', true)
  31. in vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php at line 169 +
  32. at Kernel ->handle (object(Request))
  33. in web\app_dev.php at line 30 +
Pilsener
Wyczyść cache i spróbuj jeszcze raz. Jak błąd jest w cache to czyszczenie tegoż to pierwsze co trzeba zrobić. Pewnie masz win + cache na plikach, wtedy bywają największe problemy.
Crash89
Cytat(Pilsener @ 17.03.2018, 22:00:12 ) *
Wyczyść cache i spróbuj jeszcze raz. Jak błąd jest w cache to czyszczenie tegoż to pierwsze co trzeba zrobić. Pewnie masz win + cache na plikach, wtedy bywają największe problemy.


Czyszczenie cache nie pomaga, jeśli uruchomię inną metodę wygenerowaną przez generator doctrine dla CRUDa np. new to te Entity jest wczytywane.
Co rozumiesz pisząc, win + cache na plikach?
Może w tym problem, ale nie spotkałem się z czymś takim.

już nie moge edytować, ale kiedy to się nie zapisze w cachu to błąd jest tutaj:

vendor\sensio\framework-extra-bundle\Request\ParamConverter\DoctrineParamConverter.php at line 66
Pilsener
No to teraz znajdź wszystkie adnotacje:
Cytat
@ParamConverter


W których używasz tej encji, czy w którejś (a może wszystkich?) nie ma literówki, jeśli nie znalazłeś literówki to je zakomentuj i zobacz, czy to coś zmienia.
Crash89
Cytat(Pilsener @ 19.03.2018, 21:41:33 ) *
No to teraz znajdź wszystkie adnotacje:


W których używasz tej encji, czy w którejś (a może wszystkich?) nie ma literówki, jeśli nie znalazłeś literówki to je zakomentuj i zobacz, czy to coś zmienia.


Uzywałem to w jednym miejscu, ale nawet usunięcie tej adnotacji nic nie zmienia.
reszta jest użyta w vendors.
Pilsener
No to musisz sprawdzić:
- czy klasa fizycznie jest w AppBundle\Entity
- wszystkie miejsca, gdzie używasz tej klasy, gdzieś musi brakować bundla, namespace, literówka w relacji etc.

Pewnie używasz GITa, wystarczy sprawdzić od którego miejsca przestało działać i przejrzeć zmiany.
Crash89
Cytat(Pilsener @ 20.03.2018, 07:59:26 ) *
No to musisz sprawdzić:
- czy klasa fizycznie jest w AppBundle\Entity
- wszystkie miejsca, gdzie używasz tej klasy, gdzieś musi brakować bundla, namespace, literówka w relacji etc.

Pewnie używasz GITa, wystarczy sprawdzić od którego miejsca przestało działać i przejrzeć zmiany.



Gdzieś jest zepsute wcześniej w Controllerze, bo jak przesunąłem metodę na samą górę w klasie to zaczęło działać.
Reszta metod jest wygenerowana przez generator doctrine.
Dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.