Tomasz Faszyński

Tomasz Faszyński Specjalista ds.
programowania

Temat: [Symfony2] Dodanie nowej encji do projektu,

Cześć,

Mam projekt w Symfony2, który działa. Chcę do niego dodać nową encję. Stworzyłem tabelę w bazie danych i stworzyłem plik Flag.php, który ma początek:

namespace Ex\CaBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
* Ex\CaBundle\Entity\Flag
*
* @ORM\Table(name="Flag")
* @ORM\Entity(repositoryClass="Ex\CaBundle\Entity\FlagRepository")
*/
class Flag {


Dalej są pola jak w bazie + gettery/settery.

Dodałem również plik FlagRepository.php:

namespace Ex\CaBundle\Entity;

use Doctrine\ORM\EntityRepository;

class FlagRepository extends EntityRepository {

public function getFlags() {
$q = $this->createQueryBuilder('f')
->getQuery()
->getResult();
return $q;
}
}


Teraz w kontrolerze chcę pobrać wszystkie rekordy z tabeli Flag w bazie korzystając z funkcji getFlags:

$flags = $this->getDoctrine()->getRepository('ExCaBundle:Flag')->getFlags();


Niestety otrzymuję błąd 500. Nie wiem, czy błąd jest w funkcji getFlags, czy nie widoczny jest plik FlagRepository?

Czy muszę coś dodawać w jakiś plikach konfiguracyjnych? Generować? Pliki dodałem ręcznie.

Jak zrobię:

$flags = $this->getDoctrine()->getRepository('ExCaBundle:Flag')->findAll();


To otrzymam wyniki, pobierze rekordy z bazy. Ale chcę użyć swojej funkcji.

konto usunięte

Temat: [Symfony2] Dodanie nowej encji do projektu,

Wyczysciłeś cache?
Co pokazuje jak uruchomisz aplikacje w środowisku dev? Nie ma tam naprowadzenia na błąd?
Tomasz Faszyński

Tomasz Faszyński Specjalista ds.
programowania

Temat: [Symfony2] Dodanie nowej encji do projektu,

Jarosław M.:
Co pokazuje jak uruchomisz aplikacje w środowisku dev? Nie ma tam naprowadzenia na błąd?

Jak uruchomić w środowisku dev? Widzę, że są pliki:

app/config/config_dev.yml
app/config/config_prod.yml
app/config/config_test.yml

Ale jak zrobić, aby czytał konfigurację z config_dev.yml i dodatkowo wyświetlał błędy?

konto usunięte

Temat: [Symfony2] Dodanie nowej encji do projektu,

Edytujesz plik web/app_dev.php i w odpowiedniej tablicy dodajesz swoje ip, albo chwilowo zakomentowujesz funkcję exit. Teraz zależy jak masz podpiętą domenę:

http://jakasdomena.pl/app_dev.php/dalszy/adres.html

lub

http://jakasdomena.pl/web/app_dev.php/dalszy/adres.html
Tomasz F.:
Jarosław M.:
Co pokazuje jak uruchomisz aplikacje w środowisku dev? Nie ma tam naprowadzenia na błąd?

Jak uruchomić w środowisku dev? Widzę, że są pliki:

app/config/config_dev.yml
app/config/config_prod.yml
app/config/config_test.yml

Ale jak zrobić, aby czytał konfigurację z config_dev.yml i dodatkowo wyświetlał błędy?
Konrad Mietelski

Konrad Mietelski Full-stack
Developer, Tech Lead
w Domveo Sp. z o.o.

Temat: [Symfony2] Dodanie nowej encji do projektu,

Tomasz F.:
Stworzyłem tabelę w bazie danych i stworzyłem plik Flag.php...
Stworzyłeś tabelę w bazie danych "z palca", czy użyłeś do tego polecenia konsolowego?
app/console doctrine:schema:update --force


Co do środowiska deweloperskiego - jeżeli pracujesz lokalnie, to zamiast korzystać z url-a "localhost/costam" używasz "localhost/app_dev.php/costam".

Przy pracy na zewnętrznym serwerze musisz najpierw zakomentować kilka linii w pliku web/app_dev.php. Dopiero wtedy będziesz miał dostęp do środowiska deweloperskiego. Zasada taka jak powyżej - zamiast "nazwadomeny.pl/dalszy/url" wchodzisz w "nazwadomeny.pl/app_dev.php/dalszy/url".

Do tego ktoś wyżej słusznie zauważył, że może trzeba odświeżyć cache za pomocą:
rm -rf app/cache
Ten post został edytowany przez Autora dnia 12.05.15 o godzinie 17:44



Wyślij zaproszenie do