Пользовательский первичный ключ Kohana 2 ORM генерирует ошибку

#php #mysql #orm #kohana #kohana-orm

#php #mysql #orm #kohana #kohana-orm

Вопрос:

В моей базе данных у меня есть jobs таблица, details таблица и employers еще раз таблица.

jobs и details находятся в соотношении «один к одному», а employers и details — в соотношении «один ко многим». Не у всех заданий есть детали, но у всех деталей есть один работодатель.

Я подумал, что было бы разумно удалить id поле из details и использовать job_id поле в качестве первичного ключа. Движок БД — InnoDB, поэтому соединения по первичному ключу должны выполняться молниеносно.

Итак, после изменения таблицы и добавления объявления первичного ключа в details модели я все еще могу получить доступ к деталям через $job->detail . Однако эта строка кода:

 $employer = $job->detail->employer->name;
  

генерирует ошибку:

Неопределенный индекс: detail_job_id

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

Кто-нибудь использовал Kohana2 ORM с пользовательскими первичными ключами?

Ответ №1:

Кстати, в версии v2.3.4 вы можете использовать $foreign_key свойство для определения FK для связанных моделей. Что-то вроде protected $foreign_key = array('employer' => 'detail_id');