ktoś wie czemu nie ma informacji w metaDataCache o mojej klasie a jak pobiore ręcznie je korzystając z $em->getClassMetaData() to jest ? przez to mi nie działa ResultSetMappingBuilder bo wywala że nie ma takiego indexu
#symfony #doctrine #php #webdev
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

jak mogę w doctrine zrobić case gdzie w którym instrukcja będzie selectem lub wcześniej policzona wartość w jakimś polu ? bo albo wywala mi expected literal albo że field nie należy do żadnej klasy...

oprócz raw query
#doctrine #symfony2 #php #webdev
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

groupSizePreRemove()


@gajowy_marucha: Unikaj w encji nazw typu PreRemove – nie ma znaczenia, że odpalasz to akurat przed usunięciem. Możesz przecież normalnie „ręcznie” odpalić sobie tę metodę z usługi czy kontrolera, więc wystarczy w nazwie samo groupSize(), bez wskazywania „kiedy”.

groupSizePreRemove
  • Odpowiedz
https://gist.github.com/miedzwin/1472ebc3194c9bb5d630

Dlaczego $this->getSQL() w UserRepository zwraca mi taki SQL:

SELECT f0_.username AS username_0, f0_.username_canonical AS username_canonical_1, f0_.email AS email_2, f0_.email_canonical AS email_canonical_3, f0_.enabled AS enabled_4, f0_.salt AS salt_5, f0_.password AS password_6, f0_.last_login AS last_login_7, f0_.locked AS locked_8, f0_.expired AS expired_9, f0_.expires_at AS expires_at_10, f0_.confirmation_token AS confirmation_token_11, f0_.password_requested_at AS password_requested_at_12, f0_.roles AS roles_13, f0_.credentials_expired AS credentials_expired_14, f0_.credentials_expire_at AS credentials_expire_at_15, f0_.id AS id_16, f0_.facebook_id AS facebook_id_17, f0_.first_name AS first_name_18, f0_.created AS created_19, f0_.updated AS updated_20,
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: nie. Nie buduje się obecnie SQLu z parametrami. Robi to już driver sam, PDO który jest zakorzeniony w samym silniku PHP.

Driver sam w miejsca pytajników stawia parametry. Dlaczego? Bo spora część programistów to debile i nie zważają na problemy z SQL injection, tak więc ogólnie jest zakazane wstawiać parametry do SQL'a 0 - a wstawiać parametry do sqla zostawia się profesjonaliście - driverowi.
  • Odpowiedz
@incognito_man: okej, a jak w subquery chce się odwołać do query aliasu wyżej ? może napiszę o co mi chodzi - chcę wyświetlić z bazy takie rekordy, dla których wartość jakiegoś pola powtarza się więcej niż dwa razy
  • Odpowiedz
#php #doctrine #symfony2
Piszę aktualnie moduł w symfony który właściwie jest osobną aplikacją - ma gadać ze starym systemem. Stary system to stare php nawet nie nazwałbym tego proceduranlym :)
Pytanie jak się zabrać za bazę - chciałem robić osobną ale nie wiem jak potem wyglądać będzie praca na dwóch entity managerach? Jak robić joiny? Czy może lepiej dać sobie spokój i dołączać nowe tabele do
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#symfony #symfony2 #php #doctrine #mysql
Mam dwie encję: Post i Category. Post zawiera pole $category, a Category pole $posts - czyli typowa relacja one to many.
Chciałbym teraz pobrać post z powiązanym obiektem kategorii w jednym zapytaniu. W tym celu używam takiej funkcji umiejscowionej w PostRepository. Niestety ten DQL w połączeniu z kluczami obcymi generuje nieskończenie zagnieżdżone zapytanie ( ͡° ʖ
  • 26
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#php #doctrine #symfony2

Mam takie cos, wszystkko dziala fajnie formularz z zagniezdzonym formularzem, po submit ladnie pokazuje obiekt Foo z dwoma przypisanymi Collections bestbars i worstbars. Problem pojawia sie przy probie persist, blad jest taki ze kolekcje sa wstawiane do bazy bez id rodzica.

Podejrzewam ze problem tkwi w tym ze ManyToOne nie ma inversedBy (no bo nie wiem co tam mialoby
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@gajowy_marucha: w doctrine również masz dziedziczenie, tam się dzieje to po abstrakcyjnym typie, który jest podstawą do zbudowania tabeli (nie po Eloquencie, a po "abstrakcyjnej" encji), a następnie dyskryminator doktrynowy sprawia (na podstawie dodatkowej kolumny w tabeli), że hydruje się obiekt odpowiedniej klasy, wedle zadanej wcześniej konfiguracji. Jedna klasa dziedzicząca może posiadać jedną relację, a druga inną. "Fizycznie" pojawią się w tabeli dwie kolumny, ale tylko jedna z nich będzie
  • Odpowiedz
@qwelukasz: OK. Ale masz źle znormalizowany schemat. Dochodzi do redundancji danych.
Dodając do tego linie autobusowe wygląda to mniej więcej tak: Arrivals(BusStopId, LineId, Time)
I teraz mając BusStopId możesz sprawdzić jakie linie tam idą i o której godzinie ( informacje z tabliczki ) a czas jest w jednym miejscu.
  • Odpowiedz
#symfony #symfony2 #doctrine #mysql #postgresql

Taka sprawa... chcę użyć innego niż domyślnego (public) schematu z #pgsql.
Doczytałem, że można to zrobić przez annotacje @Table(schema="schema") ale to jest dosyć "statyczne" rozwiązanie i byłoby lepiej/prościej wprowadzić ten parametr jako parametr w parameters.yml niźli dla każdej encji osobno... (Annotacja w encji mogłaby nadpisywać dla danej encji schemat).
Jak to zrobić
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

pobieram sobie w #symfony #doctrine dwie kolumny w taki sposób: http://pastebin.com/d2Y9zG0v jak zrobić żeby rozbić te dwie kolumny na oddzielne tablice, tj w jednej tablicy mam wszystkie lastName a w drugiej wszystkie companyName ? da radę to jakoś sprytnie bez pętli ? czy lepiej po prostu zrobić dwa zapytania i się nie męczyć ?
#webdev #php
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Jurigag:

1. Jak często chcesz te dane wyciągać? Im częściej, tym szybciej to musi działać. Ale jeśli dosyć rzadko to nie ma znaczenia i dowolna metoda będzie ok – nawet jeśli nie będzie za szybka.
2. Jak dużo musisz tych danych wyciągać? Bo jeśli bardzo dużo (w tysiącach) to jednak wypada się zastanowić nad wydajnością. Jeśli mniej, to znów: można olać – dowolna metoda będzie wystarczająco szybka.
3. Zrób dwa
  • Odpowiedz
Okej, Mirki i Mirkówny będzie trochę #chwalesie trochę #januszewebdevu i #januszewebdesignu tagu programowanie jednak nie użyję bo to tylko PHP ( ͡° ͜ʖ ͡°) Będzie nawet trochę #rozdajo
Otóż po tym przydługim wstępie chciałbym zaprezentować mirko maszynę losującą w moim wykonaniu (uwaga dla #tylkonocny wypala oczy więc proszę ostrożnie). Tak wiem że jest już #mirkorandom ale
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ghost1511: Doctrine korzysta z refleksji, żeby ustalić wartości pól – możesz mieć same gettery i brak setterów – Doctrine sobie poradzi.

Jaka jest więc zasada? Robisz gettery/settery tylko i wyłącznie te, z których faktycznie chcesz korzystać.

Nie będziesz ustalać ID? Nie rób settera. Masz powiedzmy $firstName i $lastName, ale pobierać będziesz tylko połączoną nazwę? Zrób getFullName() i olej gettery do pojedynczych
  • Odpowiedz