Codeigniter, библиотека или помощник может получить доступ через URL? - PullRequest
1 голос
/ 28 сентября 2011

В Codeigniter есть библиотека и помощник. Я могу получить доступ к контроллеру и его подфункции. для примера.

login/getid

Есть ли способ получить доступ к библиотеке или помощнику через URL?

Обновление: Я сделал библиотеку капчи в контроллере входа. Я хочу использовать его в представлении многих других контроллеров. в файле вида код капчи должен быть таким,

<img src="/login/get_captcha" />

каждый раз, когда я хочу использовать капчу, мне приходится вызывать контроллер входа в систему.

Итак, я подумал, что должен быть лучший способ сделать это. Если библиотека или помощник могут получить доступ через URL, я могу сделать это помощнику. может получить доступ к представлению другого контроллера без загрузки контроллера входа в систему.

Ответы [ 2 ]

5 голосов
/ 28 сентября 2011

Вы можете создать контроллер-обертку для доступа исключительно к этим функциям и использовать свои маршруты для использования указанных URL-адресов

Пример: yoursite.com/helper/geo/citiesNearZip/90210

class helperController extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->helper($this->uri->segment(1)); // geo helper in this example

        if($this->uri->segment(2))
        {
            $helper_method = $this->uri->segment(2);
        }
        else
        {
            show_404();
            return false;
        }

        // check if helper has function named after segment 2, function citiesNearZip($zip) in this example...
        if(function_exists($helper_method)
        {
            // Execute function with provided uri params, xss filter, secure, etc...
            // You would also want to grab all the remaining uri params and pass them as 
            // arguments to your helper function
            $helper_method();
        }
    }
}
3 голосов
/ 28 сентября 2011

Неа. Это просто не тот способ, которым фреймворк был разработан для работы.

Если вы считаете, что вам нужен прямой доступ к помощнику / библиотеке, вы, вероятно, делаете что-то не так.

Можете объяснить, что вы пытаетесь сделать? Должен быть лучший способ.

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