2015-02-28 2 views
1

Я пытаюсь передать строку с именем «publicUsers» в функции обратного вызова, но когда я показываю аргумент в моей консоли, я вижу следующую строку ... & Z34Sf {; Cr (mАргументы не работают propelry в codeigniter 3

Я включил черту под названием «VerifyLogin» в мой контроллер, который имеет функцию с именем VerifyAndSetSession

Любая помощь будет действительно оценено

ниже мой код

if(isset($_POST['sign_in'])) 
{ 
    $this->emailPassValidation("","|callback_VerifyAndSetSession[publicUsers]"); 
} 

Это метод emailPassValidation «»

function emailPassValidation($new_account_call_back,$sign_in_callback){ 
    $this->form_validation->set_rules("password","password","required{$sign_in_callback}", 
     ['required' => 'Please enter your %s']); 
} 

Это где я отладка пропущенного аргумента функции обратного вызова проверки

trait VeirfyLogIn 
{ 
    function VerifyAndSetSession($infoType) 
    { 

     fb($infoType, "Infotype"); 
     //This shows in the console.log &Z34Sf{;Cr(m ??? 

     exit; 
    } 
} 

ответ

0

Формы принимаю по умолчанию один параметр, который является значение входных данных для проверки. Это означает, что:

$this->form_validation->set_rules("field","field","callback_checkField"); 

будет означать функцию обратного вызова, как это:

public function checkField($field_value){} 

Если вы хотите передать дополнительные данные для обратного вызова, вы можете установить это значение, как вы делали с кронштейнами:

$this->form_validation->set_rules("field","field","callback_checkField['othervalue']"); 

Эта новая переменная не заменит параметр по умолчанию, но добавить новый:

public function checkField($field_value, $othervalue){} 

Так что в вашем случае для:

callback_VerifyAndSetSession[publicUsers] 

функция должна быть:

function VerifyAndSetSession($fieldvalue, $infoType) 
+0

Большое спасибо за ваш ответ. Теперь я понимаю, как это работает. Кажется, я пропустил это, так как в учебнике объясняется, что он передается как второй аргумент. –