Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Связь многие ко многим, работа со связующей таблицей, Kohana 3.2
Invis1ble  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11866
Пользователь №: 23195
На форуме: 6 лет, 8 месяцев, 6 дней
Карма: 433

Трезвый :
7 лет, 7 месяцев, 5 дней


Всем привет.
Прошу помочь со следующими вопросами, т.к. в мане не нашел к сожалению ответа, а в гугле не знаю как спросить.
Ситуация такая: есть таблица 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'];
$user->language_2 = $data['learn'];
$user->first_additional_field = 'first_field_value';
$user->second_additional_field = 'second_field_value';
$user->save();

Спустя 2 минуты, 16 секунд (19.01.2012 - 10:31) SlavaFr написал(а):
Цитата (Invis1ble @ 18.01.2012 - 22:42)

1. как добавить языки для юзера с указанием данных в этих 2-х полях
2. как мне получить данные по этим двум полям для каждого конкретного юзера

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 написал(а):
Семён
Цитата
Есть статейка где всё детально разжёвано:
http://progik.ru/blog/framework-Kohana-nemnogo-teorii-ob-ORM

к сожалению, все что описано в статье мне уже известно из мана, а по моей проблеме ничего не сказано...



Спустя 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
спасибо за ссылку, попозже почитаю (сейчас бегло ознакомился - так и думал, что без напильника проблема не решается)


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса