Sono nuovo a CodeIgniter (v 3.0.0) (proveniente da CakePHP) e sto tentando di impostare messaggi di errore di convalida personalizzati su uno dei miei moduli. Sto utilizzando un file di configurazione per memorizzare tutte le mie regole di convalida, come spiegato here. Questo è il mio application/config/form_validation.php
di file:Messaggi di errore di convalida personalizzati nel file di configurazione CodeIgniter
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
$config = array(
'appointments/signup' => array(
array(
'field' => 'admin[name]',
'label' => 'Name',
'rules' => 'required',
'errors' => array(
'required' => 'Please tell us your %s',
),
),
array(
'field' => 'admin[email]',
'label' => 'Email',
'rules' => 'required|valid_email|is_unique[users.email]',
'errors' => array(
'required' => 'Please enter your %s address',
'valid_email' => 'Please enter a valid email address',
'is_unique' => 'That email is already taken. Forgot your password?'
)
),
array(
'field' => 'admin[username]',
'label' => 'Username',
'rules' => 'required|min_length[4]|max_length[25]|is_unique[user_settings.username]',
'errors' => array(
'required' => 'Please choose a %s',
'min_length' => '%s must me at least 4 characters long',
'max_length' => '%s cannot exceen 25 characters',
'is_unique' => '%s is already taken :('
)
),
array(
'field' => 'admin[phone_number]',
'label' => 'Phone number',
'rules' => 'min_length[0]',
),
array(
'field' => 'admin[password]',
'label' => 'Password',
'rules' => 'required|min_length[8]',
'errors' => array(
'required' => 'Please choose a %s',
'min_length' => '%s must be at least 8 characters long'
)
),
array(
'field' => 'admin[passconf]',
'label' => 'Password',
'rules' => 'required|matches[admin[password]]',
'errors' => array(
'required' => 'Please re-type your %s',
'matches' => '%ss do not match'
)
),
array(
'field' => 'company[company_name]',
'label' => 'Organization\'s Name',
'rules' => 'required',
'errors' => array(
'required' => 'Please tell us your %s',
)
),
),
);
Come potete vedere, sto cercando di impostare un feedback convalida personalizzata utilizzando la matrice errors
, il più dettagliato here. Ma vedo ancora il messaggio globale predefinito The <field name> field is required.
.
C'è un modo per impostare i messaggi di convalida personalizzati nel file di configurazione, senza dover modificare il file predefinito globale?
Non ho lavorato con CodeIgniter, ma il tuo campo è 'admin [nome], admin [email], ecc. ... non dovresti avere solo" nome, email, ecc "come campo? –
@AndreSantiago Non penso che sia un requisito ... almeno non è menzionato da nessuna parte. Il motivo per cui ho i nomi dei campi è che raccolgo due tipi distinti di dati: i dati relativi all'amministratore e i relativi dati relativi all'organizzazione. La pagina invia quindi il modulo inviato come richiesta ajax in due variabili POST: '$ _POST ['admin']' e '$ _POST ['company']'. Le regole di convalida funzionano come previsto, tranne che i messaggi di errore personalizzati non vengono visualizzati. –
Penso che dovresti controllare la sezione [Impostazione messaggio di errore] (http://www.codeigniter.com/user_guide/libraries/form_validation.html#setting-error-messages). – Tpojka