Где я должен объявить конфигурации для всего приложения в октябре Cms

Я должен установить некоторые постоянные значения для использования в любом месте приложения. Как я могу установить эту константу. Я пытаюсь следующим образом:

Я установил константу STATUS на layouts/admin.htm

 function onStart()
{
    if (!Auth::getUser()){
        \Flash::error($this['theme_lang']['not_allowed']);
        return Redirect::intended('login');
    }

    $this['STATUS']  = [
        'PENDING' => 0,
        'PACKAGING' => 1,
        'PICKUP' => 2,
        'REPICKUP' => 3,
        'PICKUPDONE' => 4,
        'ASSIGNTODELEVER' => 5,
        'REASSIGNTODELEVER' => 6,
        'DELIVERED' => 7,
        'PAID' => 8,
        'RETURNTOHUB' => 9,
        'RETURNTOMERCHANT' => 10,
        'REFUSED' => 100,
    ];
}

Это не стандартный способ, который я использовал. Я не могу использовать STATUS как константу GLOABL во всем приложении. Не могли бы вы предложить мне какой-нибудь умный способ, пожалуйста?

если этот статус связан с какой-либо таблицей, вы можете просто указать это как static property of model, и вы можете получить к нему доступ, как ClassName::Status[<ANME>], если вам нужен пример кода, я могу предоставить его как ответ

Hardik Satasiya 18.12.2020 14:35

Спасибо. Поделитесь примером кода.

Abdus Sattar Bhuiyan 18.12.2020 14:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
114
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Для экс. у нас есть таблица users, и нам нужно добавить для нее соответствующую информацию о статусе

поэтому мы можем добавить его как static attribute в User модель

Бывший. модель: plugins\rainlab\user\models\User.php

<?php namespace RainLab\User\Models;

class User extends UserBase
{
    use \October\Rain\Database\Traits\SoftDelete;

    /**
     * @var string The database table used by the model.
     */
    protected $table = 'users';
    

    // HERE ----->
    public static $Status = [
        'PENDING' => 0,
        'PACKAGING' => 1,
        'PICKUP' => 2,
        'REPICKUP' => 3,
        // ... add more
    ]

    // .... other code  
}

Теперь, как это использовать

// any where in php code
echo User::$Status['PENDING']; // output -> 0


// may be you need to pass it in twig section 
function onStart()
{
    $this['STATUS'] = User::$Status;
}

Таким образом, вы можете сохранить правильную информацию, например

  1. этот статус о пользователях
  2. в будущем, если вам нужно что-то изменить, вам просто нужно обновить модель User
  3. легко ссылаться и использовать

если есть сомнения, пожалуйста, прокомментируйте.

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