tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1027
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Apr 2003
    Ort
    Scheeßel
    Beiträge
    359
    Hi Leute,

    ich mal wieder... Kennt sich jemand mit dem OR-Mapper Doctrine aus? Ich hab da mal 'ne Frage:

    wenn ich 'ne einfache DQL-Query baue mit 'nem ->where und diese über fetchArray() oder auch über execute() ausführen lasse, funktioniert das nur dann, wenn es in der zugehörigen Tabelle auch einen passenden Datensatz gibt. Existiert kein Datensatz, auf den die Where-clauses in der Query passen, so schmeißt Doctrine eine Exception mit der Meldung "Couldn't find class".

    Der Fall, dass für eine Query kein passender Datensatz gefunden werden kann, ist aber doch keine Ausnahme. Im Gegenteil, das kommt doch sogar recht häufig vor, oder irre ich mich?

    Also, wie frag ich mit Doctrine ab, ob mindestens ein passender Datensatz existiert und wie lasse ich dann ein leeres Array oder irgendwas anderes verwertbares zurückliefern, falls nicht?

    Danke

    Grüße,
    Hendrik
     
    aka SeveQ

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Könntest du den dafür passenden Quelltext mal zeigen?
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    Registriert seit
    Apr 2003
    Ort
    Scheeßel
    Beiträge
    359
    Klar, is nix besonderes:

    PHP-Code:
        $dql Doctrine_Query::create()
            ->
    from('User usr')
            ->
    leftJoin('usr.Roles r')
            ->
    where('username = "'.$_POST["username"].'"')
            ->
    andWhere('password = "'.$_POST["password"].'"');

        
    $user $dql->fetchArray(); 
    sieht aus wie'n simples Login-System, ist auch eines... Rein experimentell.

    Ich hab da jetzt 'nen try/catch-Block drumherum gestrickt. Ist das der gangbarste Weg? Muss das so sein?

    Danke
     
    aka SeveQ

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Hm, fehlt da nicht select()?
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ich kenne zwar Doctrine nicht. Aber wie weiss das Ding, wie der leftJoin verbunden wird?
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  6. #6
    Registriert seit
    Apr 2003
    Ort
    Scheeßel
    Beiträge
    359
    Zur Info: der Code-Abschnitt funktioniert, wenn ein zu username und password passender Datensatz in der Tabelle User enthalten ist.

    Zitat Zitat von Felix Jacobi
    Hm, fehlt da nicht select()?
    Macht keinen Unterschied. Select verwendet man in Doctrine anscheinend nur, wenn an statt des ganzen Records nur bestimmte Felder haben will.

    Zitat Zitat von yaslaw
    Ich kenne zwar Doctrine nicht. Aber wie weiss das Ding, wie der leftJoin verbunden wird?
    Anhand der in der schema.yml definierten Relations. Schau dir Doctrine mal an, bei Interesse. Scheint wirklich nicht schlecht zu sein, wenn man's erstmal kapiert hat.
    Geändert von jccTeq (16.02.10 um 18:21 Uhr)
     
    aka SeveQ

  7. #7
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Hm, okay, dann rate ich mal weiter

    Was passiert denn wenn du ein count() versuchst?
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  8. #8
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Gibts in Doctoirne eine Möglichkeit das SQL ausgeben zu lassen?

    Also das hier -> http://www.doctrine-project.org/Doct...od_getsqlquery
    Wenn ja, dann kannst du analog meinem kleinen Tutorial debugen http://wiki.yaslaw.info/wikka/PhpDebugMySqlQueries
    Geändert von Yaslaw (17.02.10 um 17:55 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. Layout und div in passender Höhe
    Von wachteldonk im Forum CSS
    Antworten: 14
    Letzter Beitrag: 26.08.07, 11:51
  2. passender RAM
    Von c_anfänger im Forum Hardware
    Antworten: 6
    Letzter Beitrag: 23.04.07, 16:16
  3. Kein passender Hintergrund...
    Von thekiller im Forum Smalltalk
    Antworten: 0
    Letzter Beitrag: 09.04.07, 22:07
  4. Passender RegExp-Pattern ?
    Von TheFrager im Forum PHP
    Antworten: 7
    Letzter Beitrag: 17.08.05, 12:01
  5. passender Speicher für QDI Advance 10f
    Von Klang im Forum Hardware
    Antworten: 0
    Letzter Beitrag: 10.10.03, 12:55

Stichworte