Страница 1 из 1

Как доставать не все атрибуты модели по умолчанию

Добавлено: 2017.04.14, 13:52
Gogi
Например мне нужны данные модели User, все поля кроме token и password.
Если я буду поднимать модель то я получу все атрибуты, в том числе и пароль. Эти данные мне нужны редко, только при авторизации и аутентификация.
А в основном я заношу атрибуты в json и обрабатываю, вывожу то что мне нужно, но это не безопасно так как можно получить пароль и токен.
Такая же проблема состоит и с релейшенами, например

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

public function relations()
    {
        return array(
            'user' => array(self::BELONGS_TO, 'User', 'user_id'),
        );
    }
Если буду доставать с другой модели user, то получу все поля.
Как правильно и где прописать в одном месте, чтобы по умолчанию получал все кроме token и password?

Re: Как доставать не все атрибуты модели по умолчанию

Добавлено: 2017.04.14, 14:20
urichalex

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

User::find()->select(['id', 'name', ...])

Re: Как доставать не все атрибуты модели по умолчанию

Добавлено: 2017.04.14, 15:21
Gogi
Конкретнее где это прописать?
У меня в проекте сотни обращений к модели ActiveRecord, где прописать select по умолчанию?

Re: Как доставать не все атрибуты модели по умолчанию

Добавлено: 2017.04.14, 19:03
urichalex
Ой, это Yii1
С помощью критерии например

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

$criteria = new CDbCriteria;
$criteria->select = 'id, name, ...';
$user = User::model()->find($criteria);
Чтобы по умолчанию.. В Yii1 я такого не знаю