2017-04-27 3 views
0

Codeigniter lancer l'erreur suivante lors de la tentative de rendu de la page de registre. Il ressemble à la méthode Register :: render() ne définit pas la ligne 21, mais je ne comprends pas le problème du toutErreur irrécupérable: Appel à la méthode non définie sur la ligne spécifique

Screenshot

Le fichier register.php

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Register extends MY_Controller 
{ 

    public function index() 
    { 
     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('first_name', 'First name','trim|required'); 
     $this->form_validation->set_rules('last_name', 'Last name','trim|required'); 
     $this->form_validation->set_rules('username','Username','trim|required|is_unique[users.username]'); 
     $this->form_validation->set_rules('email','Email','trim|valid_email|required'); 
     $this->form_validation->set_rules('password','Password','trim|min_length[8]|max_length[20]|required'); 
     $this->form_validation->set_rules('confirm_password','Confirm password','trim|matches[password]|required'); 

     if($this->form_validation->run()===FALSE) 
     { 
      $this->load->helper('form'); 
      $this->render('register/index_view'); 
     } 
     else 
     { 
      $first_name = $this->input->post('first_name'); 
      $last_name = $this->input->post('last_name'); 
      $username = $this->input->post('username'); 
      $email = $this->input->post('email'); 
      $password = $this->input->post('password'); 

      $additional_data = array(
       'first_name' => $first_name, 
       'last_name' => $last_name 
      ); 

      $this->load->library('ion_auth'); 
      if($this->ion_auth->register($username,$password,$email,$additional_data)) 
      { 
       $_SESSION['auth_message'] = 'The account has been created. You may now login.'; 
       $this->session->mark_as_flash('auth_message'); 
       redirect('user/login'); 
      } 
      else 
      { 
       $_SESSION['auth_message'] = $this->ion_auth->errors(); 
       $this->session->mark_as_flash('auth_message'); 
       redirect('register'); 
      } 
     } 
    } 
} 
+2

Vous appelez '$ this-> render()' et ça n'existe pas ... qu'est-ce qui est difficile à comprendre? – Narf

+0

Impossible de voir la fonction de rendu n'importe où? – user4419336

+0

Vous avez raison, la méthode n'existe pas, je suivais un tutoriel débutant et 'render' était déjà là. alors ... Où devrais-je mettre l'outil de 'render()'? – Jose

Répondre

1

Vous devez utiliser:

$this->load->view('register/index_view'); 

Lorsque j'ai commencé avec codeigniter j'avais un problème similaire. Render() est utilisé par certaines bibliothèques et, comme vous, j'ai suivi un tutoriel, mais il n'y avait rien à propos de cette bibliothèque. Après un moment, j'ai vu quelques commentaires dans cet article et j'ai découvert à propos de render(). Si vous voulez l'utiliser, essayez de trouver une bibliothèque qui l'a implémentée.

+0

Merci beaucoup !! tu es très gentil! ça fonctionne parfaitement maintenant! – Jose

+0

Vous êtes les bienvenus! Je recommande d'utiliser autant que possible la documentation de codeigniter car elle est bien écrite et facile à comprendre. https://www.codeigniter.com/docs – Vladut