6

Actualmente estoy usando la clase de Validación de formulario (en Codeigniter) y las reglas de configuración.En Codeigniter, ¿cómo pasar un tercer parámetro a una devolución de llamada (validación de formulario)?

Funciona de esta manera con dos parámetros (codeigniter.com/user_guide/libraries/form_validation.html):

$this->form_validation->set_rules('username', 'Username', 'callback_test[abc]'); 

pero qué pasa con un tercer parámetro? Y un cuarto ...? ¿Es posible?

Respuesta

12

No es oficial, pero funciona

Dividir el parámetro ''

$this->form_validation->set_rules('article_big_image','Gambar Besar','callback_check_picture[article_big_image,edit]'); 

function check_picture($image,$param){ 
    $param = preg_split('/,/', $param); 
    $field = $param[0]; 
    $action = $param[1]; 
    echo $field.$action; 
} 
+0

genial. gracias – Limon

0

No sin ampliar la clase de validación de formulario del sistema. Para obtener información sobre cómo lograr esto, eche un vistazo a este article.

alternativa, se puede acceder a las variables del poste dentro de su función de devolución de llamada usando:

$this->input->post('field_name'); 

que puede o no puede ayudar.

+0

Gracias debería funcionar (voy a tratar más adelante), pero un poco decepcionado al saber no hay manera fácil de hacerlo como 'callback_test [ abc, def, ghi] '. – Dacobah

0

Puede utilizar la matriz para más parámetros para más campos como lo hice a continuación:

$error = array(

       array(
       'field' => 'check', // the field name will come here 
       'label' => 'Check', 
       'rules' => 'required|here you can put the callback Function' 
       ) 
     ); 
-1

    $this->form_validation->set_rules('article_big_image','Gambar','callback_check_picture[article_big_image,edit]'); 
    function check_picture($image,$param){ 
     $param = explode(',', $param); 
     $field = isset($param[0])?$param[0]:''; 
     $action = isset($param[1])?$param[1]:''; 
     echo $field.$action; 
    } 
+0

Puede editar la otra respuesta en lugar de publicar una respuesta por separado, gracias. – Clay

-2

Puede pasar a la regla |callback_handle_is_unique_value_combinations[val1,val2]

que, public function callback_handle_is_unique_value_combinations($str, $field) { $fields = explode(',', $field); $val1 = $fields[0]; $val2 = $fields[1];

y luego se efectúan las cponarisons

Cuestiones relacionadas