2017-10-19 1 views
0

Je suis un peu perplexe avec ce problème. Mon code est vraiment différent donc je m'attendais à des résultats différents. Mais j'exécute des validations de formulaire et j'essaie d'appeler la fonction is_unique. Mais il semble qu'il ajoute mon sous-domaine au nom de la table dans la requête. Et pour la vie de moi je ne peux pas comprendre pourquoi.Codeigniter Form Validation is_unique semble ajouter un sous-domaine au nom de table

J'ai une classe de bibliothèque qui met en place les contrôles dont il a besoin ici

protected function settablecolumnattributes(){ 
    $this->addcolumnattributes(
     array(
      "name" => "user_login", 
      "type" => "VARCHAR", 
      "length" => "255", 
      "default" => "NULL", 
      "collation" => "", 
      "attributes" => "", 
      "null" => "", 
      "index" => "", 
      "autoincrement" => "", 
      "comments" => "", 
      "width" => "", 
      "sortable" => "true", 
      "control" => array(
       "type" => "textbox", 
       "label" => "User Login", 
       "id" => "", 
       "class" => "", 
       "placeholder" => "Enter a Username", 
       "validations" => "required|is_unique[blah.user_login]" 
      ), 
      "visible_on_form" => true, 
      "visible_on_table" => true 
     ) 
    ); 
} 

alors je suis collectionne toutes les validations de contrôle ici et les sortir.

public function set_object_form_validations(){ 
    $fields = $this->getcolumnattributes(); 

    foreach($fields as $field): 
     $visible_on_form = property_exists($field, "visible_on_form"); 
     if($visible_on_form !== false): 
      if($field->visible_on_form !== true): 
       continue; 
      endif; 
     endif; 
      $this->CI->form_validation->set_rules($field->name, $field->control['label'], $field->control['validations']); 
    endforeach; 
} 

maintenant quand les validations rencontre les is_unique i obtenir cette erreur

Error Number: 1146 
Table '12385468.demo_blah' doesn't exist 
SELECT * FROM `demo_blah` WHERE `user_login` = 'joe' LIMIT 1 
Filename: libraries/Form_validation.php 
Line Number: 1125 

l'URL de test je l'utilise est comme ce demo.example.com/admin/users/add

Je suis allé dans le fichier sous forme de Validations et essayé pour retracer ce problème, mais il continue à aller de plus en plus profondément dans les fonctions CI. Tous les endroits où $table est présent indiquent simplement blah, mais vous pouvez voir dans la requête . Je suis perplexe.

Répondre

0

Compris ceci après avoir percé toutes les fonctions de codeigniter. Il s'avère qu'il y avait un préfixe de base de données à config.php = $config['dbprefix']. Je pensais que c'était le sous-domaine à l'origine parce que ça disait démo. mais le préfixe était également configuré pour la démo. Il n'y avait en fait rien de mal à la requête que mes paramètres.