Как получить доступ к модели в Constants.php в Codeigniter?

Я хочу получить доступ к функции в application/config/constants.php, которая написана в одной из моих моделей CodeIgniter. Возможно ли это сделать?

Пожалуйста, покажите нам несколько примеров, чтобы нам не пришлось гадать, о чем вы на самом деле спрашиваете.

M. Eriksson 28.05.2019 16:39

Нет, это не легко сделать. Файл констант используется задолго до создания контроллера, и вы не можете «загружать» какие-либо другие библиотеки (включая модели), пока это не произойдет. Вероятно, вы могли бы найти хак, но это не рекомендуется. Лучшим решением может быть использование «хука», либо post_controller_constructor, либо post-controller. Документация по хукам

DFriend 28.05.2019 17:45

@MagnusEriksson, спасибо, но мне нечего тебе сказать. Я хочу получить доступ к модели в постоянном файле, вот и все.

Alok Mali 28.05.2019 20:13

@DFriend Спасибо, я попробую ваше предложение.

Alok Mali 28.05.2019 20:15
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
216
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет причин менять константу с помощью функции модели или любой другой функции в этом отношении. Константы должны быть статическими и строгими определениями. Например, пути к приложениям, номера версий и т. д.

They are similar to a variable except that they can never be changed.

Если вы хотите иметь переменную, которая является superglobal, но должна быть в некотором отношении динамической, вы можете создать /application/core/MY_Controller.php

class MY_Controller extends CI_Controller {

     public $someglobalvar;

     public function __construct() {
          parent::__construct();
          $this->load->model('somemodel');
          $this->someglobalvar = $this->somemodel->get_var();
     }

}

и пусть ваши контроллеры расширят его вместо CI_Controller

(приложение/контроллеры/Some_controller.php)

class Some_controller extends MY_Controller {

     public function index() {

          var_dump($this->someglobalvar); 

     }

}

Другие вопросы по теме