Подменить модель в AR

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Zvook
Сообщения: 21
Зарегистрирован: 2013.03.06, 13:06

Подменить модель в AR

Сообщение Zvook »

Всем доброго. Честно говоря как точно сформулировать вопрос - не знаю, объясню:

Есть у меня табличка, скажем, user. Соот-но есть к ней моделька User, сгенеренная через gii
Далее. Есть от юзера какой-то релейшен, пусть будет Profile
Так вот, при построении критерии (например) для жадной загрузки, делается следующее:

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

// .......
$criteria->with = array(
'Profile'
)
После чего к выборке присосется Профайл через модель Profile. Все бы ничего, да вот модель профайла я переопределил своей собственной (CustomProfile), с кучей доп методов и прочей писанины.

Внимание вопрос: Как мне в with залепить CustomProfile ?

Точнее, я прекрасно понимаю что его туда залепить не получится, но хочется найти способ решения проблемы не прибегая к редактированию gii-генерируемых файлов
Аватара пользователя
sluchainiyznak
Сообщения: 617
Зарегистрирован: 2013.05.19, 17:51
Откуда: ХМАО-Югра, г. Сургут
Контактная информация:

Re: Подменить модель в AR

Сообщение sluchainiyznak »

а в модели User попровить "Profile" на "CustomProfile" не решение?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Подменить модель в AR

Сообщение SiZE »

CustomProfile наследуется от базовой модели AR в Й? Или ты просто объявил класс " class CustomProfile { } "? Если первое, то вариант выше :)
Zvook
Сообщения: 21
Зарегистрирован: 2013.03.06, 13:06

Re: Подменить модель в AR

Сообщение Zvook »

SiZE писал(а):CustomProfile наследуется от базовой модели AR в Й? Или ты просто объявил класс " class CustomProfile { } "? Если первое, то вариант выше :)
Конечно отнаследовался :)
sluchainiyznak писал(а):а в модели User попровить "Profile" на "CustomProfile" не решение?
Очень бы не хотелось править gii-генерируемый файл. Он часто перетирается из-за постоянных изменений в табличке. Да и вообще помоему это не очень правильно :) или я не прав?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Подменить модель в AR

Сообщение ElisDN »

Zvook писал(а):Очень бы не хотелось править gii-генерируемый файл. Он часто перетирается из-за постоянных изменений в табличке. Да и вообще помоему это не очень правильно :) или я не прав?
В Yii, в основном, все правят, так как всё равно приходится rules() менять. А если не хотите, то добавляйте по два класса для каждой модели. Например UserBase и User, ProfileBase и Profile. Базовый класс abstract class UserBase генерируйте, а конкретный User extends UserBase правьте.
Zvook
Сообщения: 21
Зарегистрирован: 2013.03.06, 13:06

Re: Подменить модель в AR

Сообщение Zvook »

ElisDN писал(а):
Zvook писал(а):Очень бы не хотелось править gii-генерируемый файл. Он часто перетирается из-за постоянных изменений в табличке. Да и вообще помоему это не очень правильно :) или я не прав?
В Yii, в основном, все правят, так как всё равно приходится rules() менять. А если не хотите, то добавляйте по два класса для каждой модели. Например UserBase и User, ProfileBase и Profile. Базовый класс abstract class UserBase генерируйте, а конкретный User extends UserBase правьте.
Ну вобщем-то примерно так и сделано. User - генерируемый, CustomUser - свой, в которым пепеопределены и rules() и relations() при необходимости и еще бог знает что. И все прекрасно, но вот как с AR быть не знаю, видимо все таки действительно придется править генерируемый файлик и менять в нем релейшен.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Подменить модель в AR

Сообщение SiZE »

А почему файл генерируемый то?
Zvook
Сообщения: 21
Зарегистрирован: 2013.03.06, 13:06

Re: Подменить модель в AR

Сообщение Zvook »

SiZE писал(а):А почему файл генерируемый то?
Ну, потому что генерируемый :) Я не знаю как ответить на этот вопрос :D
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Подменить модель в AR

Сообщение flashimage »

SiZE писал(а):А почему файл генерируемый то?
А что тут не понятно - каждый раз при изменении базы человек регенит новую модель - делают обычно так новички - дабы не наплужить)) думаю скоро проблема отпадет сама собой))
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Zvook
Сообщения: 21
Зарегистрирован: 2013.03.06, 13:06

Re: Подменить модель в AR

Сообщение Zvook »

flashimage писал(а):
SiZE писал(а):А почему файл генерируемый то?
А что тут не понятно - каждый раз при изменении базы человек регенит новую модель - делают обычно так новички - дабы не наплужить)) думаю скоро проблема отпадет сама собой))
А бывалые модели пишут руками? :) Я предполагал что gii для того и существует, чтобы синхронизировать изменения в бд с моделькой :)
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Подменить модель в AR

Сообщение lancedevnull »

чтобы увеличить вхождение в проект :) тобишь РАЗ сгенерил и все :) я вообще не генеррю а копипастю уже свой скелет
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Подменить модель в AR

Сообщение SiZE »

Zvook писал(а):Я предполагал что gii для того и существует, чтобы синхронизировать изменения в бд с моделькой :)
Ты сейчас конкретно отжог :lol: По крону запускай!
Zvook
Сообщения: 21
Зарегистрирован: 2013.03.06, 13:06

Re: Подменить модель в AR

Сообщение Zvook »

SiZE писал(а):
Zvook писал(а):Я предполагал что gii для того и существует, чтобы синхронизировать изменения в бд с моделькой :)
Ты сейчас конкретно отжог :lol: По крону запускай!
xDDD
lancedevnull писал(а):чтобы увеличить вхождение в проект :) тобишь РАЗ сгенерил и все :) я вообще не генеррю а копипастю уже свой скелет
Вот об этом я как то не задумывался честно говоря :) Собственно, теперь есть повод ... :)
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Подменить модель в AR

Сообщение SiZE »

CTRL+C → CTRL+V — зло. ;)
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Подменить модель в AR

Сообщение lancedevnull »

SiZE писал(а):CTRL+C → CTRL+V — зло. ;)
зато вставляет ;)
Ответить