Помощник
|
PHP / ORM |
Letmetouchyou
|
Сообщение
#1
|
||
|
|
||
|
|||
nexus_hb |
8.6.2011, 16:38;
Ответить: nexus_hb
Сообщение
#2
|
|
А подробнее можно? какая структура базы данных, какие поля тебе нужны?
|
|
|
Letmetouchyou
|
Сообщение
#3
|
|
Да без разницы.
Допустим есть таблица Users (id, name, firstname) и таблица UsersInfo (id, userID, email, phone, skype) и задача как один запросом узнатьвсю информацю и пользователе, используя ActiveRecord (Yii) (ORM).. |
|
|
maxim_malets |
8.6.2011, 17:09;
Ответить: maxim_malets
Сообщение
#4
|
|
Посмотри relations и scopes в документации по yii
Грубо говоря связываешь две таблицы и фильтруешь запрос к оригинальной через админ скоуп |
|
|
Letmetouchyou
|
Сообщение
#5
|
|
это если по одному ключу одна запись, а если напрмер в одной таблице авторы, а вдругой книги. и у одного автора может быть несколько книг. Точно также через relations? а можно на примере пожалуйста.
|
|
|
maxim_malets |
9.6.2011, 10:15;
Ответить: maxim_malets
Сообщение
#6
|
|
Без проблем, в таком случае тип релейшена будет HAS_MANY, в yii guide все прекрасно расписано и с примерами. Еще больше примеров в их кукбуке с блогом.
Кстати, фактически ORM может делать два и более запросов, обязательно посмотри парметр with что б не отрабатывал lazy load |
|
|
Letmetouchyou
|
Сообщение
#7
|
|
вот шас столкнулся с пробелмой:
[PHP]$user = UserProfile::model()->find( Array( 'select'=>'timezone, firstname', 'with'=>'user', 'condition'=>'userID = :userId', 'params'=>Array( ':userId'=> Yii::app()->user->id ) ) ); $timezone = $user->timezone; $userLogin = $user->user->login;[/PHP] все правилльно работает, но только по зависимости user вытягивает все данные. А как сделать, чтобы по зависимости, вытягивало только нужные ? ПРобовал так: [PHP]$user = UserProfile::model()->find( Array( 'select'=>'timezone, firstname, u.login', 'with'=>Array( 'user' =>array( 'alias' => 'u' ), ), 'condition'=>'userID = :userId', 'params'=>Array( ':userId'=> Yii::app()->user->id ) ) ); $timezone = $user->timezone; $userName = $user->firstname; $userLogin = $user->login;[/PHP] Но не работает. |
|
|
maxim_malets |
16.6.2011, 21:54;
Ответить: maxim_malets
Сообщение
#8
|
|
|
А если без алиаса, просто user.login?
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3397 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1240 | 24.11.2023, 14:46 автор: alexey |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44898 | 19.7.2023, 10:03 автор: qpPeW |
|
Есть спецы по php/laravel? | 3 | Mixatraider | 1889 | 26.5.2023, 20:48 автор: Mixatraider |
|
Опытный PHP\Python разработчик в поиске интересных задач | 6 | daikzlex | 3402 | 25.5.2023, 13:55 автор: daikzlex |
Текстовая версия | Сейчас: 18.4.2024, 22:21 |