2015-03-06 18 views
7

Ich benutze CodeIgniters Formularvalidierung, und ich habe viel Zeit damit verbracht, dies zu beheben, ohne Glück. Ich habe dieses Feld:CodeIgniters is_unique sagt immer Wert existiert bereits

<input type="text" name="user" id="user" length="20" placeholder="Username"> 

Und ich verwende diese zu validieren:

$this->form_validation->set_rules('user', 'Username', 'trim|required|min_length[3]|max_length[20]|alpha_dash|is_unique[users.user]'); 

My db eine Tabelle hat users und user ein Feld in es ist, so dass ich weiß nicht, was Ich mache falsch, oder was das Problem ist. Die Tabelle ist leer (aber ich habe auch versucht, Datensätze zu haben) und in phpmyadmin ist das Symbol "unique" ausgewählt. Ich weiß, dass die DB-Verbindung funktioniert, denn wenn ich diese Regel entfernen und ansonsten gültige Daten eingeben und das Formular abschicke, wird der Benutzer zur Datenbank hinzugefügt.

Es sei denn, is_unique verwendet eine andere Datenbankkonfigurationsdatei, die ich nicht konfiguriert habe? Ich weiß es nicht wirklich. Es ist irgendwie frustrierend und ich denke, dass ich auch nur die Verwendung eines Frameworks fallen lassen kann ...

Ihre Hilfe wäre großartig! Vielen Dank.

+0

bitte das einzigartige Symbol fällt und dann versuchen, – Arun

+0

Nein, noch kein Glück ... – justanelephant

+0

können Sie nach Ihrem Controller-Code hier http://paste.ofcode.org/ und den Link – Arun

Antwort

1

Dies könnte/könnte nicht helfen: Sie scheinen die DB nach mit der Formularvalidierung zu laden. Es gibt auch einen Tippfehler uses.user.

1

In Transact-SQL ist das Wort "USER" ein spezielles Wort. Versuchen Sie, um uses.user mit einem Back-Ticks wie folgt zu umgehen:

`users.user`
... sehen, ob das hilft.

1

versuchen Sie dies: -

$this->form_validation->set_rules('user', 'Username', 'trim|required|min_length[3]|max_length[20]|alpha_dash|unique[users.user]'); 
0

es Datenbank geladen werden müssen.

$this->load->database(); 
Verwandte Themen