2016-01-02 144 views
2

即時新的codeigniter,並嘗試解決以下問題現在幾個小時。 我嘗試在形式SET_VALUE但是當我把它我得到以下錯誤:Codeigniter - 調用未定義的函數set_value()

一個PHP錯誤遇到 嚴重性:錯誤 消息:調用未定義功能SET_VALUE() 文件名:情態動詞/ register_modal.php 行號:27 Backtrace:

當我刪除第27行的set_value()時,一切工作正常。

行號27是SET_VALUE()行:

<div class="row"> 
<div class="form-group"> 
    <label class="control-label sr-only">Vorname:</label> 
    <div class="col-md-8 col-md-offset-2 col-xs-10 col-xs-offset-1"> 
    <input type="text" class="form-control" name="firstname" placeholder="Vorname" value="<?php echo set_value('firstname'); ?>" size="50" /> 
    <i class="fa form-control-feedback" aria-hidden="true"></i> 
    </div> 
    </div> 
</div> 

這就是我的控制器:

class Form extends CI_Controller { 

     public function index() 
     { 
       $this->load->helper('form'); 

       $this->load->library('form_validation'); 

       $this->form_validation->set_rules('firstname', 'Vorname', 'required|callback_username_check'); 
       $this->form_validation->set_rules('surename', 'Nachname', 'required'); 
       $this->form_validation->set_rules('email', 'Email', 'required'); 
       $this->form_validation->set_rules('password', 'Passwort', 'required'); 

       if ($this->form_validation->run() == FALSE) 
       { 
         $this->load->view('modals/register_modal'); 
       } 
       else 
       { 
         $this->load->view('modals/login_modal'); 
       } 
     } 

     public function username_check($str) 
     { 
       if ($str == 'test') 
       { 
         $this->form_validation->set_message('username_check', 'The {field} field can not be the word "test"'); 
         return FALSE; 
       } 
       else 
       { 
         return TRUE; 
       } 
     } 

} 

我還設置自動負載:

$autoload['helper'] = array('form'); 
+0

您不必加載表單助手兩次。將其保留在自動加載中,僅在所有控制器中全局使用,但從控制器中刪除。此外,更改控制器的名稱以避免可能的名稱衝突,因爲CodeIgniter已經具有Form類。畢竟,autoload url helper也是。 – Tpojka

+0

謝謝你,改變了一切,但仍然是同樣的問題。有沒有自動加載的命令? –

+0

並不是很多,因爲在'autoload.php'中加載的所有類都在控制器之前加載。基本樣本來自文檔或不適合你? – Tpojka

回答

4

必須加載library('form_validation')在你的控制器。 這項工作適用於我:

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

class Login extends CI_Controller{ 

    public function __construct(){ 
     parent::__construct(); 
     $this -> load -> library('form_validation'); 
    } 
....