Yii: параметры именованных групп условий в отношениях
20 февраля 2011
До готовящегося релиза 1.1.7 можно было применить именованные группы условий, они же named scopes, к отношениям:
$posts=Post::model()->with('comments:recently:approved')->findAll();
Но нельзя было указать для них параметры. Решил эту проблему creocoder. Теперь, слив свежий код из SVN, можно делать так:
$users=User::model()->findAll( 'with'=>array( 'posts'=>array( 'scopes'=>array( 'rated'=>5, ), ), ), );
Комментарии RSS по email OK
А с моим патчем пока никак ? P.S.: может есть смысл сменить формат вызова на User::model()->with('posts:related=5')->findAll() ?
Но остается проблема с придумыванием синтаксиса для with для случаев когда у именованой группы параметров больше чем один
Ekstazi, патч пока изучается. Смена формата меня пока не очень привлекает: легко будет ошибиться, да и разбор строк — штука не совсем быстрая. К тому же, в текущей реализации нет проблем с несколькими параметрами.
А где можно на русском почитать про именованные группы условий? Или хотя бы на английском...
http://yiiframework.ru/doc/guide/ru/database.ar
Ekstazi Никакой проблемы с синтаксисом в случае, если у именованной группы больше одного параметра нет. Например:
Sam, спешу поправить тебя...
1.
не работает (если scopeName не является методом, а определен в scopes())
нельзя сделать:
тоже не есть гуд, так что есть еще куда развивать тему (пока что лучше, чем ничего, но хуже, чем что-то).
Предположу даже, что вторая проблема решается проще некуда:
Сорри, за небольшой флуд, просто немного надоело, что в issues такие вещи могут оежать месяцами
vamp, гайд как-бы намекает:
scopes
и именованные методы с параметрами — штуки совершенно разные.Кстати, спасибо за напоминание проверить документацию, это замечание я случайно из SVN выпилил.