Active Record только для чтения

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Райымбек
Сообщения: 10
Зарегистрирован: 2019.12.23, 15:38

Active Record только для чтения

Сообщение Райымбек »

Доброго времени суток! Как можно сделать active record без методов save, update ... Дело в том что, работаю с несколькими базами и с некоторых таблиц одной из баз данные должны только читаться, но быть неизменяемыми. Получается нужен объект который заполняется с базы и имеет возможность связи с другими таблицами. Если кто сталкивался с такой задачей, поделитесь с опытом?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Active Record только для чтения

Сообщение rak »

можно сделать для таких таблиц отдельный класс ActiveRecord, в котором переопределить методы save и т.п. и наследовать модели от этого класса
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Active Record только для чтения

Сообщение unknownby »

Достать данные на отображение, но не прописывать их в форму. Тогда при сохранении не будут обновляться данные, которые нельзя обновлять :D Логично вроде
Райымбек
Сообщения: 10
Зарегистрирован: 2019.12.23, 15:38

Re: Active Record только для чтения

Сообщение Райымбек »

unknownby писал(а): 2020.12.23, 17:10 Достать данные на отображение, но не прописывать их в форму. Тогда при сохранении не будут обновляться данные, которые нельзя обновлять :D Логично вроде
Да, но кто-то может где-то в коде изменить атрибут и сохранить, случайно. Например, я сам) Хотелось бы от это предостеречься уже заранее!
Райымбек
Сообщения: 10
Зарегистрирован: 2019.12.23, 15:38

Re: Active Record только для чтения

Сообщение Райымбек »

rak писал(а): 2020.12.23, 16:25 можно сделать для таких таблиц отдельный класс ActiveRecord, в котором переопределить методы save и т.п. и наследовать модели от этого класса
Как можно найти все методы, которые хоть как-то могут сделать изменения?
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Active Record только для чтения

Сообщение unknownby »

Райымбек писал(а): 2020.12.24, 07:34 Да, но кто-то может где-то в коде изменить атрибут и сохранить, случайно. Например, я сам) Хотелось бы от это предостеречься уже заранее!
Во-1 что значит "кто-то где-то в коде"?
Подразумевается пользователь, который работает с фронтом?
Разработчик проекта?

Во-2 как это "изменить атрибут и сохранить, случайно"?
Самое главное это "случайно", такого не бывает.

Предостерегаемся таким образом, что у модели есть набор атрибутов и если написать атрибут с другой модели Yii2 выдаст ошибку, что такого атрибута нет в данной модели. Логично.
Я предложил способ, когда достаются поля на редактирование из конкретной модели, а другие поля на просмотр из других моделей. Выходит что нельзя "случайно" поменять что-то.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Active Record только для чтения

Сообщение samdark »

Как можно найти все методы, которые хоть как-то могут сделать изменения?
Пройтись по методам на данной странице:
https://www.yiiframework.com/doc/api/2. ... tiverecord
Ответить