Что нужно запомнить?
Есть три основных типа связей в реляционных базах данных:
- Один ко многим [BELONGS_TO / HAS_MANY].
Как пример:
Есть пользователь в таблице user(A), и есть таблица заказов orders(B). Соответственно записи заказов B принадлежат одному пользователю в таблице А. Заказы относятся к пользователю(BELONGS TO).
Также если рассмотреть что у пользователя А есть много заказов В то для пользователя такая связь называется HAS_MANY (пользователь имеет много заказов). - Один к одному [HAS_ONE].
Одна запись может иметь в связях только одну запись в другой таблице. - Многие ко многим [MANY_MANY].
У одной записи может быть много категорий, а у категорий может быть много записей.
Записать связи нужно в вашем active record классе модели:
1 2 3 4 5 6 7 8 |
<span class="hl-reserved">public</span> <span class="hl-reserved">function</span> <span class="hl-identifier">relations</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span> <span class="hl-reserved">return</span> <span class="hl-reserved">array</span><span class="hl-brackets">(</span> <span class="hl-quotes">'</span><span class="hl-string">author</span><span class="hl-quotes">'</span><span class="hl-code">=></span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-identifier">self</span><span class="hl-code">::</span><span class="hl-identifier">BELONGS_TO</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">User</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">author_id</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,</span> <span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-brackets">} </span> |
Соответственно, потом при выборке вы можете сразу работать с полем author так как он будет подгружен в выборку автоматически.