2012-08-16 18 views
33

Zastanawiam się, czy istnieje funkcja, która pozwala mi od razu sprawdzić, czy istnieje rekord w bazie danych?Cakephp sprawdź, czy istnieje rekord

Teraz używam poniższego fragmentu kodu, aby wykryć, czy istnieje zapis, ale mogę sobie wyobrazić, że istnieje prostszy/lepszy sposób.

$conditions = array(
    'conditions' => array(
     'User.id' => $this->Session->read('User.id'), 
     'User.activation_key' => $this->Session->read('User.key') 
    ) 
); 
$result = $this->User->find('first', $conditions); 
if (isset($result['User'])){ 
    //do something 
} 

Czy istnieje coś takiego jak:

$conditions = array(
    'conditions' => array(
     'User.id' => $this->Session->read('User.id'), 
     'User.security_key' => $this->Session->read('User.key') 
    ) 
); 
if ($this->User->exists($conditions)){ 
    //do something 
} 

Ok, tak nie ma. To się nazywa exists(), ale potrzebuję tego samego, ale z parametrami, więc mogę dodać własne warunki do czeku.

Szukałem google, ale nie mogę znaleźć żadnego tematu na ten temat. Cóż, dużo o php i mysql, ale nie o cakephp. Potrzebuję odpowiedzi na ciasto.

Dzięki za poświęcony czas :)

Odpowiedz

61

Co szukasz jest Model::hasAny

Zastosowanie:

$conditions = array(
    'User.id' => $this->Session->read('User.id'), 
    'User.security_key' => $this->Session->read('User.key') 
); 
if ($this->User->hasAny($conditions)){ 
    //do something 
} 
+4

Dziękuję bardzo, nie zauważył funkcja ta wynosiła około :) – Jelmer