| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Yii criteria relations |
| Автор: nepster 28.6.2013, 00:51 | ||||||||
подскажите пожалуйста как работать с релейшинами в Yii
Пытаюсь соединить таблицу коды и типы по type_id Criteria
собственно никаких ошибок нет и слияния талиц тоже. В идеале работающий запрос на чистом SQL выглядит вот так
|
| Автор: Gromdron 28.6.2013, 10:29 | ||
А зачем именно критерии ? Почему нельзя через DAO работать ?
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51ccb3ce6ccc19d336000002#findElement_E7045_51cd3b6a6ccc1997200091b9_0 |
| Автор: nepster 28.6.2013, 15:28 |
| да через это работает хорошо не спорю, но интересно все таки релизация через релейшини и критерию |
| Автор: nepster 28.6.2013, 17:06 | ||
собственно получилось сделать так! подскажите пожалуйста, как сделать так, что бы в объект записывались не все данные из таблицы, а только нужные, например мне нужно добавить только поле type_name из талицы type. |
| Автор: Gromdron 28.6.2013, 20:37 | ||||
В http://www.yiiframework.com/doc/api/1.1/CActiveRecord#relations-detail, написано:
Соответственно попробуйте так:
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51ccb3ce6ccc19d336000002#findElement_E7045_51cdc9f76ccc195f3700ae99_0 |
| Автор: nepster 28.6.2013, 23:59 | ||||||||||
ольшое спасибо все заработало, осталось только 1 проблема.
Связи соответствуют 1 к 1. Тоесть к примеру для таблицы кодов (где есть номер типа), нужно достать имя типа из таблицы типов (номер типа это ПК) Тоесть если есть код где, номер типа 5, то естественно номеру 5 соотвествует только 1 строка. ияходя из документыции нужно использовать:
но при этом вылазит ошибка. И слелудующий момент, к примеру мне нужно достать все записи из таблицы кодов, где статус типа не равен 0. я прописал вот так
что эже получилось, по кодам достались все записи, а по типам сработала выборка. тоесть если использовать чистый SQL будет так:
а вот почему 'type'=>array('condition'=>'status!=0') применяется только к прикрепленной таблице ? Добавлено через 6 минут и 46 секунд Проблему решил, не внимательно писал код. работает с self::HAS_ONE |
| Автор: Gromdron 29.6.2013, 11:28 |
| Насчет has_many гляну дома, а насчет таблицы - все правильно, вы же ставите условие только для подключенной при помощи with модели, а не для результата. Вы же ставите в SQL условие: code.user_id=0 OR code.pt = 0 AND type.status!=0 А при работе указываете только: code.user_id=0 OR code.pt = 0 Отредактируйте $criteria->condition P.s. Используйте в соответствии с документацией полное именование столбца: т.е. Имя_таблицы.имя_столбца Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51ccb3ce6ccc19d336000002#findElement_E7045_51ce9aaf6ccc19412c002d7d_0 |