2015-03-06 8 views
7

Sto utilizzando la convalida del modulo CodeIgniter e ho passato molto tempo a cercare di risolvere il problema, senza fortuna. Ho questo campo:L'is_unique di CodeIgniter dice sempre che il valore esiste già

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

e sto usando questo per convalidare:

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

mio db ha un tavolo users e user è un campo in essa, quindi non so cosa Sto sbagliando o qual è il problema. La tabella è vuota (ma ho anche provato con i record) e in phpmyadmin è selezionata l'icona "unique". So che la connessione db funziona correttamente, perché se rimuovo quella regola e inserisco dati altrimenti validi e invio il modulo, l'utente viene aggiunto al database.

A meno che is_unique non usi un altro file di configurazione db che non ho configurato? Non lo so davvero. È un po 'frustrante e sto pensando che potrei anche abbandonare l'uso di un framework ...

Il tuo aiuto sarebbe fantastico! Grazie.

+0

si prega di rilasciare l'icona unica e quindi provare – Arun

+0

No, ancora senza fortuna ... – justanelephant

+0

potete inserire il vostro codice di controllo qui http://paste.ofcode.org/ e inviare il link – Arun

risposta

1

Questo potrebbe/potrebbe non aiutare: Sembra che tu stia caricando il DB dopo eseguendo la convalida del modulo. C'è anche un refuso uses.user.

1

In Transact-SQL la parola "USER" è una parola speciale. Prova dintorni uses.user con un back-ticks così:

`users.user`
... vedi se questo aiuta.

1

provare questo: -

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

ha bisogno di caricare database.

$this->load->database();