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

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

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

Сообщение Gogi » 2017.04.14, 13:52

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

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

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

urichalex
Сообщения: 957
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex » 2017.04.14, 14:20

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

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

Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

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

Сообщение Gogi » 2017.04.14, 15:21

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

urichalex
Сообщения: 957
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex » 2017.04.14, 19:03

Ой, это Yii1
С помощью критерии например

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

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

Ответить