#symfony2 #symfony #php

Mam encje Exchange która zawiera przelicznik waluty (dodawne przez admina/moderatora).
Chce aby przy każdym dodaniu (postPersist) oraz po każdej edycji (postUpdate) uruchamiana była akcja/skrypt który dla danej waluty przeliczy w bazie prowizje ze sprzedaży.

Zrobiłem to na event listenerze ale w takim wypadku ten event bedzie uruchamiany przy każdej edycji encji - nie tylko Exchange. Czy macie jakieś
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: dobra rada - nie używaj doctrinowych eventów, one służą do zupełnie czego innego niż logika biznesowa, napisz sobie własny event, obsłuż go event listenerem z symfony, zrób to w miarę jawnie, a nie doctrinową magią, bo potem dostaniesz raka debugując te wszystkie doctrinowe eventy
  • Odpowiedz
Witajcie mirki.

Tworzę w pracy stronkę, gdzie ma być sklep elektroniczny. Napisałem sobie serwis, gdzie tworzę zamówienie, dodaję produkty do zamówienia, pobieram informację o zamówieniu, cenę itd.
Jednak z powodu braku doświadczenia nie robię tego w odpowiedni sposób. W poprzedniej pracy widziałem jak takie coś było zrobione przez doświadczoną osobę i to mniej więcej wyglądało tak:
$this->getOrder()->getPrice() - aby pobrać cenę.
$this->getOrder()->getStatus() - aby pobrać status zamówienia.
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: taj w sensie encji, wszystkie te metody tam powinny się znajdować bo operują one na Order, ale przecież ty tu nie operujesz na sqlach, operujesz na orderze xD a to że robisz niepotrzebne zapytania co chwile to już inna kwestia, wiesz o tym że zamiast tego:

public function addOrderItem(Orders $order, ProductVariation $productVariation, $amount)
{
$orderItem = new
  • Odpowiedz
Witajcie mirki.
1. Mam projekt na #symfony2 i muszę zrobić koszyk. W jaki sposób zrobić to najlepiej? Aktualnie zamierzam zrobić tak, że będę przechowywał w bazie danych: użytkownik -> produkt.
2. Nie mam w pracy team leadera i muszę sobie radzić sam, więc może podpowiecie mi gdzie najlepiej upchnąć logikę koszyka (dodawanie, usuwanie, edycja produktów w koszyku)? Przy poprzednim projekcie logikę pakowałem do serwisów, ale jako że słabo znam strukturę
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Jurigag: Nie wiem czy dobrze rozumiem pytanie, ale wg mnie po znalezieniu w bazie pasujacego klienta robisz zamowienie->setClient($znaleziony); wtedy powinno sie zapisac dobrze pod warunkiem ze zrobisz flush($zamowienie) a nie flush(). Samo flush zapisze wszystko lacznie z nowym klientem pochodzacym z formularza.
Co do wrzucania nowego z formularza to dziala to tak jak powinno.
  • Odpowiedz
@uirapuru: w sumie jak zacząłem operować po prostu bez zmiennych a na referencji tj tylko korzystając z $rentOrder->getFinalCarUser / setFinalCarUser to poszło gładko, jak klonowałem tworzyłem jakieś nowe zmienny i inne cuda to się cuda robiły
  • Odpowiedz
Witajcie mirki.
Taka sytuacja. Mam w bazie danych 2 tabele: user, product i vote. W tabeli vote zapisuję:
userid | type | recordid. W polu userid przechowuję id użytkownika który głosował, w polu type przechowuję typ głosowania (użytkownik lub produkt), w polu recordid przechowuję id rekordu z tabeli user lub product.
Chciałbym pobrać ile głosów zostało oddane na użytkownika, dlatego napisałem
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: Whatever, rozwiązałem to w taki sposób:

$query = $this->getEntityManager()->createQuery("SELECT u, COUNT(v.recordId) as user_votes
FROM AppBundle\Entity\User u
LEFT JOIN AppBundle\Entity\Vote v WITH v.recordId = u.id
WHERE u.roles
  • Odpowiedz
@mariecziek: musisz pobrać z bazy danych wszystkich użytkowników, którzy biorą udział w wyzwaniu, a następnie zrobić ORDER BY wyniki + achievements DESC.
Ty nie szukasz podpowiedzi jak to zrobić tylko całego rozwiązania. Zadaj precyzyjne pytanie to otrzymasz odpowiedź. Jak nie umiesz w dql to napisz w sql a później przepisz na dql
  • Odpowiedz
Mam pytanie do mirków z #programowanie #php #symfony2
Otóż.... w tabeli w bazie danych będę musiał w jednej kolumnie (tzn w polu przy każdym rekordzie) stworzyć kilkanaście relacji do innej tabeli. Tak się w ogóle da, czy muszę to rozdzielić na kilkanaście osobnych rekordów? #pytanie
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@czolnowski: faktycznie, może masz rację. Zrobię to "brzydko" ;).

@MacDada: Dzięki wielkie za wyczerpującą odpowiedź. Będę wiedział na przyszłość. Co do tagowania, gdyby to było stackoverflow nie tagowałbym php i symfony2, ale na mirko tag doctrine obserwuje jedna osoba.
  • Odpowiedz
Chcę zrobić system hierarchii, znalazłem wręcz identyczny przykład w dokumentacji, ale coś nie działa tak jak powinno
link do dokumentacji: http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#one-to-many-self-referencing

mój kod: http://pastebin.com/45Y5gbpf

to zwraca w polu children: http://pastebin.com/J1kZANgd
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: $er zostanie dodany jako argument funkcji przy wywołaniu, a Ty chcesz jeszcze dodać coś z zewnętrznego scope.

Bo tą funkcję anonimową to nie Ty będziesz wywoływał a jakiś form manager, który widząc że w parametrze query_builder dodałeś funkcję anonimową wywoła ją z parametrem $er, skąd od ma wiedzieć, że chcesz tam jeszcze $caravan?
  • Odpowiedz
trochę to słabe właśnie jest że funkcje anonimowe nie są bindowane przez symfony do np formy bo rozumiem że tam masz $caravan zdefiniowane


@Jurigag: trochę to niewykonalne, bo tę f-cję anonimową wywołuje EntityType (konkretniej, DoctrineType), który nie ma dostępu do obiektu twojego forma. Zresztą nie widzę żadnego use-case na to, którego normalnie nie załatwia konstrukcja use.

Nie zapominaj że od php 5.4 $this jest automatycznie domyślnie bindowane do zewnętrznego scope
  • Odpowiedz
Witajcie mireczki.
Załóżmy, że tworzę sklep internetowy z butami. Buty mają nazwę oraz opis. Mogą też mieć różne rozmiary i kolory. Chciałbym stworzyć możliwość dodania butów z róznymi kolorami, rozmiarami itd. Rozwiązałem to sobie w następujący sposób:
1. Tworzę w bazie danych 4 tabele: Buty, Kolor, Rozmiar i RodzajButów
2. W tabeli Buty przechowują tytuł i opis jakiegoś modelu buta.
3. W tabeli Kolor przechowuję wyłącznie kolory.
4. W tabeli Rozmiar przechowują wyłącznie rozmiary butów (męskie,
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#symfony #php #symfony2
jak wiadomo (albo i nie) kazdy domylnie w sf dziedziczy role po ROLE_USER
Teraz pytanie: w bazie mam kilka ról... jak pobrać z bazy tylko zwyklych userow, bez innych rol?
moge zrobic selecta z na sztywno wpisanym where roles = 'a:0:{}' ale moze macie jakies inne sposoby?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jeśli to do jakiegoś pobocznego, rzadko używanego bajeru, a użytkowników nie masz specjalnie dużo, to zaciągnij wszystkich i sprawdź PeHaPem w pętli o których Ci chodzi.


@MacDada: tak to wlasnie zrobilem tyle ze wstrzykuje role hierarchy do serwisu, pobieram role usera i sprawdzam czy jest w hierarchii bo user ROLEADMIN nie pokaze ze ma rolemoderator albo role_user wiec trzeba hierarchie z security przeleciec
  • Odpowiedz
#symfony2 #symfony
Takie pytanie:
Mam encje post i tags - podrecznikowy przykład. Jak zrobić aby dodając tags do post były one w kolejności jakich je dodam? I żebym w takiej kolejności mógł je wyciągać?
User może dodać Max 5 tagow,
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

SLECT SUM(DATEDIFF(MIN(nextDate, e1.dateto), MAX(previousDate, e1.datefrom)) + 1) ... WHERE e1.dateto >= previousDate AND e1.datefrom <= nextDate


@MQs: wydaje się działać, tylko musiałem MIN i MAX zmienić na LEAST i GREATEST, dzięki mireczku
  • Odpowiedz
czy z zmienną przekazaną do widoku(twig) z symfony poprzez $this->rednerView coś jeszcze się dzieje ? mam tablicę tablic, w której znajduje się indeks z pustą tablicą, robie var_dump tej zmiennej i wyświetla mi normalnie ten indeks a gdy chce się do niego odwołac w widoku to pisze że nie istnieje, wtf ? :X dodam że wartośc tego indeksu to pusta tablica
#php #symfony2
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach