константы или таблица?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
platon2010
Сообщения: 32
Зарегистрирован: 2015.02.06, 14:29

константы или таблица?

Сообщение platon2010 »

есть dropdown с ролями "admin, user"

Что лучше сделать, отдельную таблицу вида id role
или константы?

Как создать эти самые константы? и постом их вызывать?
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

Re: константы или таблица?

Сообщение Demon_id »

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

http://php.net/manual/ru/language.constants.syntax.php
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: константы или таблица?

Сообщение lynicidn »

все уже придумано за вас - RBAC хранит роли и связывает их с id пользователя
platon2010
Сообщения: 32
Зарегистрирован: 2015.02.06, 14:29

Re: константы или таблица?

Сообщение platon2010 »

как во view вывести что то типа

Код: Выделить всё

 <select>
                        <option value="0" selected="selected">Pending</option>
                        <option value="1">Active</option>
                        <option value="-1">Inactive</option>
                        <option value="2">Dormant</option>
                    </select>


через константы?
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

Re: константы или таблица?

Сообщение Demon_id »

модель:

Код: Выделить всё

class MyModel extends \yii\db\ActiveRecord {                    

    const STATUS_PENDING = 0;
    const STATUS_ACTIVE = 1;
    const STATUS_INACTIVE = -1;
    const STATUS_DORMANT = 2;                    

    public static function getStatuses()
    {
        return [
            self::STATUS_PENDING => 'Pending',
            self::STATUS_ACTIVE => 'Active',
            self::STATUS_INACTIVE => 'Inactive',
            self::STATUS_DORMANT => 'Dormant',
        ];
    }
}
вью:

Код: Выделить всё

<?= Html::activeDropDownList($model, 'status', MyModel::getStatuses()); ?>
platon2010
Сообщения: 32
Зарегистрирован: 2015.02.06, 14:29

Re: константы или таблица?

Сообщение platon2010 »

круто, спасибо
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

Re: константы или таблица?

Сообщение Demon_id »

platon2010 писал(а):круто, спасибо
надеюсь не нужно объяснять, что теперь по всему коду где нужно использовать какой то статус, нужно писать (пример)

Код: Выделить всё

if($obj->status==MyClass::STATUS_INACTIVE) { ... }
вместо

Код: Выделить всё

if($obj->status==-1) { ... }
Ответить