Empfehlungen: Erweiterte Suche

[gelöst] Find 2 Werte auslesen lassen

Daten auslesen, verarbeiten und den Views übergeben

[gelöst] Find 2 Werte auslesen lassen

Beitragvon doubleyou » Fr 6. Jan 2012, 15:10

Hallo Zusammen,

ich versuche gerade in einem Controller folgendes.
Ich habe eine User Datenbank. In dieser sind einzelne User als Administrator, Moderator, Autor, usw eingeteilt.

Nun möchte ich in meinem edit und add view in einem Feld ausgeben lassen wer alles "Administrator" und "Moderator ist.

Das auslesen funktioniert von einem der beiden Begriffe wunderbar das sieht bei mir im Controller wie folgt aus

Code: Alles auswählen
$variables = $this->Event->User->find('all', array('conditions'=>array('User.typ'=>'administrator') ));
$this->set(compact('variables''));


Wie schaffe ich es aber nun das ich Administraor und Moderator ausgelesen bekomme. Ich habe es so versucht was jedoch leider nur die Moderatoren auswirft

Code: Alles auswählen
$variables = $this->Event->User->find('all', array('conditions'=>array('User.typ'=>'administrator', 'User.typ'=>'moderator') ));
$this->set(compact('variables''));


Wie schaffe ich dies denn nun ?
Hat jemand eine Idee ?

Lieben Gruß
Andrea
doubleyou
 
Beiträge: 26
Registriert: Fr 21. Jan 2011, 11:41
Wohnort: Mainz
CakePHP-Version: 2.0
OS: Mac OS X 10.7.1

Re: Find 2 Werte auslesen lassen

Beitragvon Jörg » Fr 6. Jan 2012, 15:23

Hallo Andrea,

sofern ich dein Problem richtig verstehe, brauchst in mySQL eine IN() Anweisung in deiner Where-Clause, um
alle Benutzer vom Typ "Administrator" und "Moderator" auszulesen.

Dafür gibt es in CakePHP eine sehr einfache und elegante Lösung.
Du erzeugst ein Array mit den Values "administrator" und "moderator" und übergibst dieses Array in der Condition auf die gewünschte Spalte in deiner Datenbank-Tabelle.
CakePHP wandelt das Array dann in eine IN()-Anweisung um und in deinem mySQL-Query steht dann z.B.
Code: Alles auswählen
SELECT * FROM users as User WHERE User.typ IN('administrator', 'moderator')
.

Hier die eigentliche Lösung deines Problems. (ungetestet)
Code: Alles auswählen
$variables = $this->Event->User->find('all', array('conditions'=>array('User.typ'=> array('administrator', 'moderator') ));
$this->set(compact('variables''));



Ich würde mich freuen, wenn du uns von deinem eventuellen Erfolg mit diesem Tipp, eine Rückmeldung gibst. :-)

Grüße
Jörg
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Find 2 Werte auslesen lassen

Beitragvon doubleyou » Fr 6. Jan 2012, 15:47

Hallo Jörg,

ich kann mich nur verneigen und sagen

"Ja es klappt"

Super vielen Lieben dank für deine Hilfe

LG
Andrea
doubleyou
 
Beiträge: 26
Registriert: Fr 21. Jan 2011, 11:41
Wohnort: Mainz
CakePHP-Version: 2.0
OS: Mac OS X 10.7.1


Zurück zu Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron