2017-04-27 7 views
0

Codeigniter wirft den nächsten Fehler beim Versuch, die Registerseite zu rendern. Es sieht aus wie die Methode Registrieren :: render() nicht definiert ist auf der Linie 21, aber ich verstehe nicht das Problem an allenSchwerwiegender Fehler: Aufruf zu undefinierter Methode in einer bestimmten Zeile

Screenshot

Die register.php Datei

<?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

Sie rufen '$ this-> render()' und es existiert nicht ... was ist schwer zu verstehen? – Narf

+0

Kann die Renderfunktion nicht wo? – user4419336

+0

Sie haben Grund, Methode existiert nicht, ich folgte einem Anfänger-Tutorial und 'Render' war schon da. dann ... Wo sollte ich das Gerät von 'render()' setzen? – Jose

Antwort

1

Sie sollten verwenden:

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

Als ich mit codeigniter begann ich ein ähnliches Problem hatte. Render() wird von einigen Bibliotheken verwendet, und wie Sie folgte ich einem Tutorial, aber es gab nichts über diese Bibliothek. Nach einer Weile sah ich einige Kommentare in diesem Artikel und ich erfuhr von render(). Wenn Sie dies verwenden möchten, suchen Sie nach einer Bibliothek, in der es implementiert ist.

+0

Vielen Dank !! Sie sind sehr freundlich! Es funktioniert jetzt perfekt! – Jose

+0

Gern geschehen! Ich würde empfehlen, so viel wie möglich Codeigniter-Dokumentation zu verwenden, weil es gut geschrieben und leicht zu verstehen ist. https://www.codeigniter.com/docs – Vladut

Verwandte Themen