Jak Sprawdzic Czy Emial Jest W Bazie ?

Siemka,

Mam nadzieje ze nie powiecie ze spamuje forum , bo to trzeci temat w ciagu kilku dni.

Ale pytanie jest krotkie: czy istnieje mozliwosc w Yii aby sprawdzi czy e-mail jest juz w bazie?

Taka odwrotna funkcja do unique:

array(‘email’, ‘unique’, ‘on’ => ‘create’, ‘message’=>‘Email already exists!’),

Bez problemu zrobie to z zapytaniem ale zastawialem sie czy jest cos z Yii ?

Dzieki i pozdrawiam

Marcin.

Siema, wlasnie ta funckja sprawdza czy email jest w bazie. Nie rozumiem po co sprawdzac czy nie ma takiego maila. Skoro nie ma to doda do bazy…

array(‘email’, ‘unique’, ‘on’ => ‘create’, ‘message’=>‘Email already exists!’)

Dzieki za szybka odpowiedz.

Szukam funkcji odwrotnej do unique na potrzby resetownia hasla. W widoku "forgotpassword" niezalogowany uzytkownik wpisuje address e-mail i w kontrolerze chcilabym sprawdzic czy podany e-mail jest w bazie czy nie, jesli tak kontynuje proces resetu hasla, jesli nie ma to wyswietla info. Przy pomocy podanej wyzej funkcji nie wyswietli mi erroru, wiec szukam czegos w stylu !unique.

Mam nadzieje ze dobrze tlumacze :)

Pozdrawiam!

Hey!

Yii chyba takiej funkcji nie oferuje jednak… jak narazie korzystam z wlasnej funcji, ale gdyby ktos z Was na cos wpadl to prosze o info. Poki co tak to wyglada( wszelkie sugestie mile widziane):

rule w modleu Users:




array('email', 'hasEmailBeenUsed', 'on' => 'forgotpassword', 'message' => 'Invalid Email address!'),



funkcja w modelu Users:




public function hasEmailBeenUsed($attribute, $params){

        $email = $this->$attribute;

	$sql = "SELECT email FROM users WHERE email = '$email'";

        $result = Yii::app()->db->createCommand($sql)->execute();

 	$message = $this->$attribute.' does not exist.';

	if(!$result)$this->addError($attribute, $message);

	}



Pozdrawiam!

Czy istnieje już user o takim emailu mozesz sprawdzi tak:


Users::model()->exists('email = :email', array('email' => $email));

Raczej odradzam wrzucanie takiej logiki do podstawowego modelu - reset hasła pownien mieć swój własny model.

Tutaj mnie zaciekawiles. Przyznaje ze nie zastanawialem sie nad odzielnym modelem dla resetowania hasla. Myslalem ze uzycie scenariusza wystarczy. Model uzytkonika zostal stworzony przy uzyciu gii, ktore tez samo wygenerowalo zasady dla hasla. Wydawalo mi sie ze w obecnym modelu przewidzialem wiekszosc mozliwych systucji. Moglbys mi przyblizyc dlaczego uwazasz ze reset hasla powinien miec wlasny model?

Dzieki!

Modele bazujące na AR służą do modyfikacji danych. Ten formularz nie modyfikuje danych, wrzucając do niego takie reguły tylko niepotrzebnie go komplikujesz. Zobacz jak wygląda domyślny formularz logowania - to jest osobny model, bo służy tylko do walidacji wprowadzonych danych, które nigdzie nie są zapisywane.

Faktycznie, jest tak jak mowisz. Pomysle nad przenisieniem zasad resetowania hasla do odzielnego modelu.

Dzieki!

Pozdrawiam!