
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 6 месяцев, 27 дней ![]() |
Всем привет.
Прошу помочь со следующими вопросами, т.к. в мане не нашел к сожалению ответа, а в гугле не знаю как спросить. Ситуация такая: есть таблица users и таблица languages. В languages находится список языков, таблицы связаны промежуточной languages_users (связь многие ко многим), а также в languages_users имеются два дополнительных поля. Так вот вопросы: 1. как добавить языки для юзера с указанием значений для этих 2-х полей (назовем их `languages_users`.`data1` и `languages_users`.`data2`) 2. как мне получить данные по этим двум полям для каждого конкретного юзера ?? по первому вопросу: например $user->add('languages', array($data['speak'], $data['learn']) - так я добавляю два языка для юзера, но те 2 поля принимают дефотные значения... прийдется переопределять метод ORM::add() ? или же есть штатные возможности? по второму вопросу что-то вообще ничего в голову, кроме извращений, не приходит... Семён, я верю в тебя )) Спустя 8 часов, 46 минут, 52 секунды (19.01.2012 - 10:29) Oyeme написал(а): Покажите полностью код метода добавления и вывода. Добавление таким способом выглядит не совсем логичным.Так как ,у Вас даже нет ключей в массиве.Что делает такую структуру запутанной и не удобной. array($data['speak'], $data['learn']) Самый рациональный способ это использования,что-то наподобие active records. Я бы переписал метод добавление и обновления данных ,примерно вот так вот: $user->language_1 = $data['speak']; Спустя 2 минуты, 16 секунд (19.01.2012 - 10:31) SlavaFr написал(а):
1) добавить строчку с нужным id-языкоa, с нужным id-юзера и нужными значениями тех двух полей о которых ты говорил в таблицу languages_users . 2) select pole1, pole2 from languages_users where user_id= xxx дальше не совсем понятно. Спустя 4 часа, 56 минут, 13 секунд (19.01.2012 - 15:27) Invis1ble написал(а): Oyeme
речь идет о фреймворке Kohana 3.2, это его api, там слишком много кода http://kohanaframework.org/3.2/guide/api/ORM#add
в data['speak'] и $data['learn'] находятся первичные ключи из languages SlavaFr как это проделать с помощью нативного php и sql я в курсе, меня интересует, имеется ли возможность решить мои вопросы с помощью api Спустя 4 минуты, 24 секунды (19.01.2012 - 15:32) Семён написал(а): Есть статейка где всё детально разжёвано: http://progik.ru/blog/framework-Kohana-nemnogo-teorii-ob-ORM ---- От себя хочу сказать, что ORM это всё красиво, но по факту говно и стоит вообще задуматься использовать ли её в своём проекте. Я был очень удивлён каким поганым образом Auth коханы через ORM извлекает групповые настройки. Спустя 55 секунд (19.01.2012 - 15:33) Invis1ble написал(а): Семён спасибо, сейчас почитаю Спустя 33 минуты, 33 секунды (19.01.2012 - 16:06) Invis1ble написал(а): Семён
к сожалению, все что описано в статье мне уже известно из мана, а по моей проблеме ничего не сказано... Спустя 4 минуты, 20 секунд Invis1ble написал(а): ПС. Если что-то непонятно описал - могу дополнить Спустя 6 минут, 40 секунд (19.01.2012 - 16:13) Семён написал(а): Сейчас чуто освобожусь постараюсь написать Спустя 14 часов, 7 минут, 17 секунд (20.01.2012 - 06:20) Invis1ble написал(а): Изначальный вариант был не совсем удачным, поэтому я немного поменял архитектуру БД, и проблема решилась сама собой. Спустя 11 часов, 1 минута, 50 секунд (20.01.2012 - 17:22) Zhandos написал(а): Вот наткнулся в гугле, может кому-то интересно будет. Решение твоей проблемы с добавлением данных в промежуточную таблицу. Придется править модуль ORM. Спустя 8 минут, 50 секунд (20.01.2012 - 17:31) Invis1ble написал(а): Zhandos спасибо за ссылку, попозже почитаю (сейчас бегло ознакомился - так и думал, что без напильника проблема не решается) -------------------- |
||||||||
![]() |
![]() ![]() ![]() |