1

嗨,我正在尝试让我的登录表单显示在我网站的每个页面上,但是我正在努力做到这一点,因为我在其他没有使用具有该方法的控制器的页面上不断收到“未定义的用户名和密码”错误“登录。

我使用了一个主控制器 (MY_Controller),它扩展了我的其他控制器。

MY_Controller 文件:

class MY_Controller extends CI_Controller {

    public $template;
    public $template2;

    public function __construct() {
        parent::__construct();
        $this->template = 'templates/default'; // Set default layout
        $this->template2 = 'templates/other';
    }
}

用户控制器 - 登录部分:

class Users extends MY_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper('form'); // Load the form helper to allow the use of forms.
    }

    /* Other register function is here*/

    public function login(){
        $data['page'] = 'login';

        $data['username'] = array(
            'name' => 'username',
            'placeholder' => 'Enter username'
        );
        $data['password'] = array(
            'name' => 'password',
            'type' => 'password',
            'placeholder' => 'Enter password'
        );

        $this->load->view($this->template, $data);
  }

默认模板文件的一部分:

    <div id="container">

        <div id="contentArea">
            <h2 class="pageTitle"><?php echo isset($title) && strlen($title) > 1 ? $title : 'Unknown Title'; ?></h2>
            <?php $this->load->view($page); ?>
        </div>
        <div id="aside">
            <h3>Login</h3>
            <?php $this->load->view('login'); ?>
        </div>
    </div>

如果有人对我如何解决这个问题有任何想法,请告诉我,在此先感谢。

4

1 回答 1

0

有很多方法可以解决这个问题。就我个人而言,我制作了一个自动加载的自定义助手,并通过那里运行我的大部分视图。

所以而不是$this->load->view($this->template, $data);

我跑load_index('login', $data)

助手/general_helper.php

function load_index($content, $data = array()) {

    $CI =& get_instance();

    $data += array('page'     => $content,
                   'username' => array('username' => 'username',
                                       'placeholder' => 'Enter username'),
                   'password' => array('name' => 'password',
                                       'type' => 'password',
                                       'placeholder' => 'Enter password'));

    $CI->load->view($CI->template, $data);

}

CodeIgniter 为您提供了数千种选择。仔细考虑并选择您喜欢的那个。

于 2012-06-26T07:19:48.237 回答