#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');