【问题标题】:Unable to load view error in codeigniter 3无法在 codeigniter 3 中加载视图错误
【发布时间】:2016-03-08 18:30:00
【问题描述】:

控制器:

class Welcome extends CI_Controller {

    public function __construct() 
    {
        parent::__construct();
        if(!is_logged_in()){
            redirect('admin');
        }
    }

    public function index()
    {
        $this->load->view('templates\sub_header');      
        $this->load->view('welcome_message');
        $this->load->view('templates\footer');
    }
}

当被调用时,控制器应该简单地按顺序加载三个视图。相反,我不断收到错误“无法加载请求的文件:模板\sub_header.php”。

需要注意的重要一点是,此代码在 localhost 上运行良好,但在 godaddy 子域上出现问题。

我在配置文件中定义了一个基本 url,它似乎可以正常工作。

另一方面,另一个控制器在任何地方都可以正常工作:

public function index()
    {
        if( is_logged_in() )
        {
            redirect('welcome');
        }

        $this->form_validation->set_error_delimiters('<div class="text-danger">', '</div>');
        $this->form_validation->set_rules('username', 'UserName', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required|min_length[4]');
        $this->load->view('templates/header');
        if($this->form_validation->run() == FALSE)
        {
            $this->load->view('auth/login_view');
        }
        else
        {
            // Check the entered value against db
            $this->load->model('auth/admin_model');
            $result = $this
                    ->admin_model
                    ->verify_user($this->input->post('username'),$this->input->post('password'));

            if($result != false)
            {

                $username = $this->input->post('username');
                $status = $result->status;

                if($status == 1)
                {
                    $user_roles = $this->admin_model->get_user_access_roles($result->id);
                    $this->session->set_userdata('username', $username);
                    $this->session->set_userdata('user-management',$user_roles->user_management);
                    $this->session->set_userdata('client-information',$user_roles->client_information);
                    $this->session->set_userdata('master-metadata',$user_roles->master_metadata);
                    $this->session->set_userdata('reports',$user_roles->reports);
                    redirect('welcome');
                }
                else 
                {
                    $data['error_message'] = "Account is disabled. Get in touch with system administrator !";
                    $this->load->view('auth/login_view',$data);
                }
            }
            else
            {
                $data['error_message'] = "Invalid UserName or Password. Try Again !";
                $this->load->view('auth/login_view',$data);
            }
        }
        $this->load->view('templates/footer');
    }

视图在管理控制器中完美加载,但登录后当管理控制器重定向到欢迎控制器时,视图停止加载。控制器之间的唯一区别是,在 Admin 控制器中我调用 header 而在 Welcome 中我调用 sub_header 但两个文件都存在于 views 文件夹中。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    \ 更改为此/

    public function index()
    {
        $this->load->view('templates/sub_header');    # Changed   
        $this->load->view('welcome_message');
        $this->load->view('templates/footer'); # Changed 
    }
    

    并且确保文件存在

    【讨论】:

    • 这是一个愚蠢的错误,但你能帮我理解为什么它没有在本地主机上抛出错误,而只是在远程服务器上。
    • 可能您正在使用 Windows 服务器。所以没有坏处。但如果是 Linux 服务器,那就是个问题了,
    • @Saurabh Hapy 来帮忙 :)
    猜你喜欢
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多