Cakephp Односторонние отношения - PullRequest
0 голосов
/ 30 мая 2011

У меня есть Предметы и Единицы, и я хочу, чтобы у каждого Предмета была одна Единица, но эта единица может использоваться многими.

Таблица предметов

id - int

name - varchar

описание - varchar

unit_id - int

Таблица единиц

id - int

name - varchar

описание - varchar

Элементы Модель

var $hasOne = array( 'Units' => array( 'className' => 'Unit' ) );

Единицы Модель Ничего, но ранее я пытался: var $belongsTo = array( 'Items' => array( 'className' => 'Item' ) );

Когда я в лесах (элементы списка), я получаю:

Warning (512): SQL Error: 1054: Unknown column 'Units.item_id' in 'on clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 684]

А на экране «Редактировать элемент» раскрывающийся список «Единицы» пуст.Есть идеи, что я делаю не так?По сути, таблица Units предназначена только для заполнения раскрывающегося списка в форме ввода Item, но я бы хотел, чтобы она автоматически заполнялась в скаффолде.

1 Ответ

1 голос
/ 30 мая 2011

Ваш предмет принадлежит единице и вашему юниту имеет много предметов.

принадлежат - внешний ключ в текущей модели (unit_id предмета)
hasMany - внешний ключ находится в связанной модели
hasOne - внешний ключ находится в связанной модели, и есть только один
hasAndBelongsToMany - внешние ключи находятся в отдельной третьей таблице

...