abonnement Unibet Coolblue
pi_144854773
Symfony2'ers:

Ik heb een entity ("Ticket") met een one-to-many relation naar de entity Comment. Kortom een ticket kan meerdere comments hebben. Als ik een ticket opvraag worden de comments hierbij weergegeven.

Een comment kan 'deleted' zijn, dan wil ik deze niet meer weergeven bij de ticket waar hij aan gekoppeld is. Ik wil 'm echter ook niet removen voor het geval hij weer teruggeplaatst wordt.

Hoe krijg ik dat voor elkaar? :{ Ik had mijn hoop gevestigd op het toevoegen van doctrine criteria aan de getComments() functie van de Ticket entity, maar dat helpt niet.
pi_144855450
quote:
14s.gif Op woensdag 24 september 2014 14:43 schreef KomtTijd... het volgende:
Symfony2'ers:

Ik heb een entity ("Ticket") met een one-to-many relation naar de entity Comment. Kortom een ticket kan meerdere comments hebben. Als ik een ticket opvraag worden de comments hierbij weergegeven.

Een comment kan 'deleted' zijn, dan wil ik deze niet meer weergeven bij de ticket waar hij aan gekoppeld is. Ik wil 'm echter ook niet removen voor het geval hij weer teruggeplaatst wordt.

Hoe krijg ik dat voor elkaar? :{ Ik had mijn hoop gevestigd op het toevoegen van doctrine criteria aan de getComments() functie van de Ticket entity, maar dat helpt niet.
Op zo'n manier? http://doctrine-orm.readt(...)iltering-collections
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_144855604
Had gehoopt zoiets te kunnen doen ja
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
#Ticket entity
    
public function getComments()
    {
        
$criteria Criteria::create()
            ->
where(Criteria::expr()->eq("deleted"false));
        return 
$this->comments->matching($criteria);
    }
    public function 
getAllComments()
    {
        return 
$this->comments;
    }
?>

maar als ik in de controller de ticket aanroep, wordt die getComments functie helemaal niet aangeroepen.
1
2
3
4
5
<?php
        $ticket 
$this->getDoctrine()
            ->
getRepository('TicketBundle:Ticket')
            ->
find($id);
?>
pi_144855702
quote:
14s.gif Op woensdag 24 september 2014 15:03 schreef KomtTijd... het volgende:
Had gehoopt zoiets te kunnen doen ja
[ code verwijderd ]

maar als ik in de controller de ticket aanroep, wordt die getComments functie helemaal niet aangeroepen.
[ code verwijderd ]

Ik ken Symphony en Doctrine niet genoeg om je daar antwoord op te kunnen geven, maar dit soort dingen kun je vaak het best even debuggen middels een fatsoenlijke IDE en in het geval van PHP iets van Xdebug ofzo.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_144857339
Krijg nou tieten, als je HTML aanroept ipv JSON werkt die criteria wel. Af en toe word ik moe van die FOSRestBundle.

[ Bericht 0% gewijzigd door KomtTijd... op 24-09-2014 16:03:37 ]
  woensdag 24 september 2014 @ 23:59:38 #36
118585 Crutch
Filantroop || Taalzwengel
pi_144879541
quote:
15s.gif Op woensdag 24 september 2014 15:48 schreef KomtTijd... het volgende:
Krijg nou tieten, als je HTML aanroept ipv JSON werkt die criteria wel. Af en toe word ik moe van die FOSRestBundle.
Vage shit.
Met html aanroepen, wat bedoel je daarmee? Vanuit Twig misschien? Want dan wordt de getComments() wel degelijk aangeroepen:
1
2
3
4
5
<?php
{% for comment in ticket.comments %}
// dingen
{% endfor %}
?>


Krijg je überhaupt comments in je JSON terug?
Je moeder is een hamster
pi_144879894
Ja de HTML gaat via een twig template. Maar dat boeit me niet, 't gaat om de JSON. En ja, krijg wel comments terug in de JSON maar gewoon allemaal dus.
  donderdag 25 september 2014 @ 00:15:35 #38
118585 Crutch
Filantroop || Taalzwengel
pi_144880080
quote:
14s.gif Op donderdag 25 september 2014 00:09 schreef KomtTijd... het volgende:
Ja de HTML gaat via een twig template. Maar dat boeit me niet, 't gaat om de JSON. En ja, krijg wel comments terug in de JSON maar gewoon allemaal dus.
Dan zou ik gewoon zelf een foreach in getComments doen. Is waarschijnlijk nog sneller dan die Criteria.
Je moeder is een hamster
pi_144880187
quote:
14s.gif Op donderdag 25 september 2014 00:09 schreef KomtTijd... het volgende:
Ja de HTML gaat via een twig template. Maar dat boeit me niet, 't gaat om de JSON. En ja, krijg wel comments terug in de JSON maar gewoon allemaal dus.
Zoals ik het zie gebruikt Twig een concept analoog aan JavaBeans. D.w.z. als je ticket.comments gebruikt wordt eigenlijk getComments aangeroepen. Is het bij de JSON dan niet zo dat er rechtstreeks een comments field wordt gepakt ipv dat de getComments methode wordt aangeroepen?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  donderdag 25 september 2014 @ 00:21:58 #40
118585 Crutch
Filantroop || Taalzwengel
pi_144880255
quote:
1s.gif Op donderdag 25 september 2014 00:19 schreef Monolith het volgende:

[..]

Zoals ik het zie gebruikt Twig een concept analoog aan JavaBeans. D.w.z. als je ticket.comments gebruikt wordt eigenlijk getComments aangeroepen. Is het bij de JSON dan niet zo dat er rechtstreeks een comments field wordt gepakt ipv dat de getComments methode wordt aangeroepen?
Dan zou je kunnen proberen om $comments protected of private te maken, wellicht dat er dan wordt gekeken naar een getter.
Je moeder is een hamster
pi_144880350
Good thinking. $comments is al protected en had ik ook al private gemaakt bij wijze van test, haalde niets uit.

Maar ik denk wel dat ik het in deze hoek moet zoeken. De JSON wordt geproduceerd door de JSMSerializer bundle en die kun je weer beinvloeden door annotations bij, jawel, de variables zelf. Niet de getter/setter functies.

:O morgen maar eens naar kijken ofzo. Ik lijk wel gek, hier om half 1 's nachts nog over nadenken :')
pi_144880445
1
2
3
4
5
6
7
8
<?php
    
/**
     * @ORM\OneToMany(targetEntity="Comment", mappedBy="ticket", cascade={"persist"})
     * @serializer\Groups({"ticketDetails"})
     * @serializer\Accessor(getter="getComments") <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
     */
    
protected $comments;
?>
there, fixed it. Iets met ballmer peak ofzo. Thnx allemaal!
pi_144880468
Daarom, nogmaals, leer gebruik maken van een debugger. Ik weet dat het in de PHP wereld niet gebruikelijk is, maar het maakt je leven zoveel makkelijker. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_144880572
It's not a bug, it's a feature, mate!

De profiler laat (liet) me keurig zien dat de uitgevoerde queries verschillend zijn, maar waarķm dan, dat mag je meestal zelf uitvinden.
  donderdag 25 september 2014 @ 00:36:41 #45
118585 Crutch
Filantroop || Taalzwengel
pi_144880665
quote:
14s.gif Op donderdag 25 september 2014 00:25 schreef KomtTijd... het volgende:
Good thinking. $comments is al protected en had ik ook al private gemaakt bij wijze van test, haalde niets uit.

Maar ik denk wel dat ik het in deze hoek moet zoeken. De JSON wordt geproduceerd door de JSMSerializer bundle en die kun je weer beinvloeden door annotations bij, jawel, de variables zelf. Niet de getter/setter functies.

:O morgen maar eens naar kijken ofzo. Ik lijk wel gek, hier om half 1 's nachts nog over nadenken :')
Haha, ik wilde nog zeggen, als ze JMS gebruiken, kijk dan even in de docs bij annotations. :')
Je moeder is een hamster
pi_144880729
quote:
14s.gif Op donderdag 25 september 2014 00:32 schreef KomtTijd... het volgende:
It's not a bug, it's a feature, mate!

De profiler laat (liet) me keurig zien dat de uitgevoerde queries verschillend zijn, maar waarķm dan, dat mag je meestal zelf uitvinden.
Dat bedoel ik ook met een debugger. Daarmee loop je stap voor stap door je code.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_144880895
quote:
1s.gif Op donderdag 25 september 2014 00:19 schreef Monolith het volgende:

[..]

Zoals ik het zie gebruikt Twig een concept analoog aan JavaBeans. D.w.z. als je ticket.comments gebruikt wordt eigenlijk getComments aangeroepen. Is het bij de JSON dan niet zo dat er rechtstreeks een comments field wordt gepakt ipv dat de getComments methode wordt aangeroepen?
Twig kijkt eerst of het een public property is, dan of het een public method is, daarna of er een public method get... is, vervolgens of er een public method is... bestaat en tenslotte of er een public method has... bestaat. De eerste die werkt, wordt gebruikt (en dan wordt de rest uiteraard niet meer gecontroleerd).
pi_144880932
quote:
0s.gif Op donderdag 25 september 2014 00:47 schreef Light het volgende:

[..]

Twig kijkt eerst of het een public property is, dan of het een public method is, daarna of er een public method get... is, vervolgens of er een public method is... bestaat en tenslotte of er een public method has... bestaat. De eerste die werkt, wordt gebruikt (en dan wordt de rest uiteraard niet meer gecontroleerd).
Dat verklaart in dezen dan waarom het daar wel werkte. Het field was namelijk protected. ;)

En dit is dus overigens weer een prima voorbeeld van het feit dat encapsulation een belangrijk OO concept is. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_144883407
quote:
0s.gif Op donderdag 25 september 2014 00:29 schreef Monolith het volgende:
Daarom, nogmaals, leer gebruik maken van een debugger. Ik weet dat het in de PHP wereld niet gebruikelijk is, maar het maakt je leven zoveel makkelijker. :P
Xdebug werkt inderdaad prima. :)
pi_144883465
Sowieso vind ik Netbeans een prima IDE voor PHP. Goede autocompletion, je wordt gewaarschuwd als je code niet aan bepaalde conventies doet, je methoden of classes te groot zijn etc.
  donderdag 25 september 2014 @ 09:47:15 #51
305897 remi1986
This MF is infected by madness
pi_144884100
quote:
1s.gif Op donderdag 25 september 2014 09:17 schreef robin007bond het volgende:
Sowieso vind ik Netbeans een prima IDE voor PHP. Goede autocompletion, je wordt gewaarschuwd als je code niet aan bepaalde conventies doet, je methoden of classes te groot zijn etc.
Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
pi_144884710
quote:
0s.gif Op donderdag 25 september 2014 09:47 schreef remi1986 het volgende:

[..]

Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
Ik hoor wel goeie verhalen over PHPStorm. Van dezelfde makers (en ik geloof zelfs afgeleid van) IntelliJ, wat in mijn ogen veruit de beste Java IDE is.
Kost je (of bij voorkeur je baas :P ) wel ¤180 euro, maar dan heb je ook wat.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  donderdag 25 september 2014 @ 10:19:20 #53
355592 Djurres
Knowledge, Fuck it.
pi_144884785
Ik gebruik phpstorm, weliswaar een beetje illegaal maar werkt echt fantastisch :)
Tadumtiedum.
pi_144885236
quote:
0s.gif Op donderdag 25 september 2014 10:19 schreef Djurres het volgende:
Ik gebruik phpstorm, weliswaar een beetje illegaal maar werkt echt fantastisch :)
Die schijnt inderdaad ook erg goed te zijn.
pi_144885562
quote:
0s.gif Op donderdag 25 september 2014 09:47 schreef remi1986 het volgende:

[..]

Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
Heeft PHPDesigner FTP mogelijkheden?
  donderdag 25 september 2014 @ 13:02:20 #56
305897 remi1986
This MF is infected by madness
pi_144889211
quote:
0s.gif Op donderdag 25 september 2014 10:50 schreef Pakspul het volgende:

[..]

Heeft PHPDesigner FTP mogelijkheden?
uiteraard... ook svn, github en al die zooi ...
pi_144889578
quote:
0s.gif Op donderdag 25 september 2014 10:16 schreef Monolith het volgende:

[..]

Ik hoor wel goeie verhalen over PHPStorm. Van dezelfde makers (en ik geloof zelfs afgeleid van) IntelliJ, wat in mijn ogen veruit de beste Java IDE is.
Kost je (of bij voorkeur je baas :P ) wel ¤180 euro, maar dan heb je ook wat.
Een personal license is "maar" 90 euro.

En idd bij voorkeur declareer je die bij je baas ^O^ Ik weet niet meer hoe ik ooit zonder PHPStorm heb gekund.
pi_144889637
quote:
0s.gif Op donderdag 25 september 2014 09:47 schreef remi1986 het volgende:

[..]

Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
quote:
System Requirements

Windows
:?
  donderdag 25 september 2014 @ 13:17:15 #59
305897 remi1986
This MF is infected by madness
pi_144889661
quote:
5s.gif Op donderdag 25 september 2014 13:16 schreef KomtTijd... het volgende:

[..]

[..]

:?
wat is er?
pi_144889779
Ik snap niet wat je met een PHP-IDE moet die alleen op windows draait.

Maar ik snap ook dat dat misschien een beetje persoonlijk is ;)
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')