Kohana 3.2, отношение ORM has_many, author_to не ссылается на правильный ключ

У меня есть две таблицы с именами utilities и types, к которым я пытаюсь получить доступ к другим полям внутри типов из представления утилит. например; $utilities->type->type;

Утилиты будут have_one набирать, а набирать будут belong_to утилиты, верно?

Вот как это у меня сейчас, и вместо того, чтобы ссылаться на utilities.type_id, он устанавливает ключ как utilities.id. В результате он вытягивает разные типы для каждой строки, хотя все они одного типа.

введите здесь описание изображения

Как мне установить отношения между моделями с помощью Kohana 3.2 ORM.

Утилиты

<?php
class Model_Utility extends ORM {
    protected $_has_one = array(
        'type' => array(
            'model' => 'type',
            'foreign_key' => 'type_id',
        ),
    );

Структура таблицы

+---------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+---------------+--------------+------+-----+---------+----------------+
| id            | int(11)      | NO   | PRI | NULL    | auto_increment |
| utility_name  | varchar(255) | NO   |     | NULL    |                |
| type_id       | int(11)      | NO   |     | NULL    |                |
| contact_name  | varchar(255) | NO   |     | NULL    |                |
| contact_email | varchar(255) | NO   |     | NULL    |                |
| contact_phone | varchar(255) | NO   |     | NULL    |                |
+---------------+--------------+------+-----+---------+----------------+

Типы

class Model_Type extends ORM {
    protected $_belongs_to = array(
        'utility' => array(
        )
    );

Структура таблицы

+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| type_id | int(11)      | NO   | PRI | NULL    | auto_increment |
| type    | varchar(255) | NO   |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+

person gorelative    schedule 20.07.2012    source источник
comment
Я удивлен, что на это не ответили ..   -  person gorelative    schedule 24.07.2012


Ответы (1)


Utility belongs_to Type (utilities имеет ключ type_id) и Type has_many утилиты.

PS. Также вам необходимо определить имя PK для таблицы types (свойство $_primary_key).

person biakaveron    schedule 24.07.2012
comment
спасибо за ответ, мне не хватало свойства $_primary_key. - person gorelative; 25.07.2012