Я не знаю, почему мой callback_insert не работает. Похоже, он не вызывается

#php #codeigniter #callback #grocery-crud #ion-auth

#php #codeigniter #обратный вызов #бакалея-crud #ion-auth

Вопрос:

Я использую продуктовые библиотеки Crud и Ion Auth в Codeigniter . callback_insert Не вызывается, когда я пытаюсь создать пользователя. callback_insert и callback_update работают

Консоль Chrome не отображает никаких сообщений. Когда я помещаю print_r ($post_array) в _create_user функцию, появляется следующее сообщение:

Неперехваченная ошибка синтаксиса: неожиданный токен A в JSON в позиции 0.

Я уже пытался переименовать функцию, и это не сработало.

 function __construct() {
    parent::__construct();
}

function _render_output($output = null) {
    $data['title'] = 'Gerir utilizadores';
    $output->data = $data;

    $this->load->view('includes/header_crud', (array) $output);
    $this->load->view('crud_view', (array) $output);
    $this->load->view('includes/footer_crud', (array) $output);
}

function gerir() {
    try {
        $crud = new grocery_CRUD();
        $crud->set_table('users');
        $crud->set_subject('Utilizador');

        //FORM LAYOUT
        $crud->unset_export();
        $crud->unset_print();
        $crud->columns('username', 'email', 'active', 'last_login');
        $crud->display_as('username', 'Nome')
                ->display_as('active', 'Estado')
                ->display_as('first_name', 'Primeiro nome')
                ->display_as('last_name', 'Último nome')
                ->display_as('last_login', 'Último login')
                ->display_as('password_confirm', 'Confirmar password');
        $crud->add_fields('first_name', 'last_name', 'email', 'password', 'password_confirm');
        $crud->edit_fields('first_name', 'last_name', 'email');

        //VALIDATION
        $crud->required_fields('first_name', 'last_name', 'email', 'password', 'password_confirm');
        $crud->set_rules('email', 'E-mail', 'required|valid_email');
        $crud->set_rules('password', 'Password', 'required|matches[password_confirm]');

        //FIELD TYPES
        $crud->change_field_type('last_login', 'readonly');
        $crud->change_field_type('last_login', 'readonly');
        $crud->change_field_type('password', 'password');
        $crud->change_field_type('password_confirm', 'password');

        //CALLBACKS
        $crud->callback_insert(array($this, '_create_user'));
        $crud->callback_update(array($this, 'edit_user'));
        $crud->callback_delete(array($this, 'delete_user'));

        //OUTPUT
        $output = $crud->render();
        $this->_render_output($output);
    } catch (Exception $e) {
        show_error($e->getMessage() . ' --- ' . $e->getTraceAsString());
    }
}

function _create_user($post_array) {
    try {

        $username = $post_array['first_name'] . ' ' . $post_array['last_name'];
        $password = $post_array['password'];
        $email = $post_array['email'];
        $data = array(
            'first_name' => $post_array['first_name'],
            'last_name' => $post_array['last_name'],
        );

        $this->ion_auth_model->register($username, $password, $email, $data);

        return $this->db->insert_id();
    } catch (Exception $e) {
        show_error($e->getMessage() . ' --- ' . $e->getTraceAsString());
    }
}

function delete_user($primary_key) {
    if ($this->ion_auth_model->delete_user($primary_key)) {
        return true;
    } else {
        return false;
    }
}

function edit_user($post_array, $primary_key = null) {
    $username = $post_array['first_name'] . ' ' . $post_array['last_name'];
    $email = $post_array['email'];
    $data = array(
        'username' => $username,
        'email' => $email,
        'first_name' => $post_array['first_name'],
        'last_name' => $post_array['last_name'],
    );

    $this->ion_auth_model->update($primary_key, $data);

    return true;
}
  

Я хочу использовать Ion Auth model для создания пользователя

Комментарии:

1. вместо print_r ($ post) , что print_r($post_array) выводит?

2. Я написал неправильно в этом сообщении, но я протестировал его с правильной переменной, и это не сработало

3. Я использовал анонимную функцию и появилась следующая ошибка: «В состоянии» вставить » у вас должна быть дата публикации — # 0 C: xampp htdocs project application libraries Grocery_CRUD.php (4631): grocery_CRUD_States-> getStateInfo () # 1 C: xampp htdocs project application controllers users.php (79): Grocery_CRUD-> render () # 2 C: xampp htdocs project system core CodeIgniter.php 532): пользователи-> управление (‘вставка’) # 3 C: xampp htdocs project index.php (315): require_once (‘C: \ xampp htdocs …’) # 4 {main } »