Я должен установить некоторые постоянные значения для использования в любом месте приложения. Как я могу установить эту константу. Я пытаюсь следующим образом:
Я установил константу 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 во всем приложении. Не могли бы вы предложить мне какой-нибудь умный способ, пожалуйста?
Спасибо. Поделитесь примером кода.
Для экс. у нас есть таблица 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;
}
Таким образом, вы можете сохранить правильную информацию, например
User
если есть сомнения, пожалуйста, прокомментируйте.
если этот статус связан с какой-либо таблицей, вы можете просто указать это как
static property of model
, и вы можете получить к нему доступ, какClassName::Status[<ANME>]
, если вам нужен пример кода, я могу предоставить его как ответ