CodeIgniter Представления в подкаталогах - PullRequest
0 голосов
/ 20 ноября 2018

Класс

public function load($page = 'resources')
{
    if ( ! file_exists(APPPATH.'views/resources/'.$page.'.php'))
    {
        // Whoops, we don't have a page for that!
        show_404();
    }

    $data['title'] = ucfirst($page); // Capitalize the first letter

    $this->load->view('templates/header', $data);
    $this->load->view('resources/multiplication'.$page, $data);
    $this->load->view('templates/footer', $data);

}

Каталог

-Application
--views
---resources
----multiplication
-----selector.php

Я пытаюсь загрузить selector.php с помощью localhost: // resources / load / selector, но он просто показывает 404. Я не могу заставить классы работать с подкаталогами в папках вида.

Если переместить селектор в / resources, он не загружается. Как я могу получить метод загрузки для загрузки selector.php?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Вы просто пропускаете / до $page в обоих случаях:

public function load($page = 'resources')
    {
         if ( ! file_exists(APPPATH.'views/resources/multiplication/'.$page.'.php')) //Just added the multiplication to make it the right path
    {
            // Whoops, we don't have a page for that!
            show_404();
    }

    $data['title'] = ucfirst($page); // Capitalize the first letter

    $this->load->view('templates/header', $data);
    $this->load->view('resources/multiplication/'.$page, $data);
    $this->load->view('templates/footer', $data);

    }

К вашему сведению, как намекал Эдуардо, show_404() на самом деле не является необходимым и на самом деле более запутанным. В CI, если представление не существует, оно скажет вам, что оно не существует. Однако, если вы хотите избежать такого сообщения, то все, что вы делаете, это хорошо.

0 голосов
/ 20 ноября 2018

Это потому, что перед загрузкой представления у вас есть условие для загрузки ошибки 404. Вы должны удалить это условие или отредактировать его по своему реальному пути:

public function load($page = 'resources')
    {
         if ( ! file_exists(APPPATH.'views/resources/multiplication/'.$page.'.php')) //Just added the multiplication to make it the right path
    {
            // Whoops, we don't have a page for that!
            show_404();
    }

    $data['title'] = ucfirst($page); // Capitalize the first letter

    $this->load->view('templates/header', $data);
    $this->load->view('resources/multiplication'.$page, $data);
    $this->load->view('templates/footer', $data);

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...