Мне нужно активно использовать статусы в проекте mt. Мне нужны они для моих users
(active
, suspended
и т.д.), Сущности (active
, pending_activation
, inactive
) и для моих подписки (active
, on_grace_period
, not_subscribed
, never_subscribed
).
До сих пор я думал, что лучший способ - хранить их в БД, но у меня есть ощущение, что гораздо проще иметь их в других 3 вариантах.
Я также думал, что могу сохранить их в моей модели Eloquent
как константы. Например, моя модель подписки будет выглядеть так:
// SubscriptionModel
const SUBSCRIBED_ACTIVE = 1;
const SUBSCRIBED_ON_GRACE_PERIOD = 2;
const NOT_SUBSCRIBED = 3;
const NEVER_SUBSCRIBED = 4;
и извлечение их, например, в виде лезвия:
// subscription/index.blade.php
@if($user->subscription->status == /App/SubscriptionModel::SUBSCRIBED_ACTIVE)
<div>You are subscribed. Thank you</div>
@elseif($user->subscription->status == /App/SubscriptionModel::NEVER_SUBSCRIBED)
<div>You need to create a subscription before being granted full access!</div>
@elseif(...)
// and so on
Как сделать то же самое, но с помощью папки config и добавления файла с именем status.php
. Доступ к нему в представлении будет выглядеть следующим образом:
@if($user->subscription->status == Config::get('status.subscription.SUBSCRIBED_ACTIVE'))
<div>You are subscribed. Thank you</div>
@elseif(...)
// etc
Есть ли лучший способ?
Кроме того, как насчет другой части уравнения, что означает статус, сохраненный в DB
. Должен ли я иметь столбец status
для таблицы подписки и хранить то, что приложение диктует или даже делает ставку, создать отдельную таблицу subscription_statuses
и иметь foreign_key
subscription_status_id
в таблице subscriptions
?