CakePHP при добавлении таблицы ownTo не найден?

У меня есть модель CakePHP, которая выглядит так (и отлично работает):

class Paper extends AppModel {
      var $name = 'Paper';
      var $displayField = 'id';
}

Это не дает ошибки, так как в моей базе данных есть таблица papers.

Когда я меняю модель на так (я просто добавляю последнюю строку):

class Paper extends AppModel {
      var $name = 'Paper';
      var $displayField = 'id';

      var $belongsTo = 'User';
}

Я получаю сообщение об ошибке:

Missing Database Table

Error: Database table ps for model Papers was not found.

Notice: If you want to customize this error message, create app\views\errors\missing_table.ctp

Что может быть не так, если CakePHP внезапно принимает некоторую номенклатуру первого и последнего символов при добавлении строки belongsTo?

ИЗМЕНИТЬ

Я могу ошибаться в этом, но разве ошибка не должна говорить model Paper? Вместо этого он говорит Papers. Это происходит после добавления оператора belongsTo. Это где ошибка?


person Angad    schedule 28.06.2011    source источник
comment
стол пс? Ваш стол не называется бумагами? если нет, вам нужно добавить var $useTable=ps;   -  person alexdd55    schedule 28.06.2011
comment
Моя таблица называется «бумаги». Но он по-прежнему говорит «ps not found», я хочу, чтобы он использовал «бумаги». На самом деле так оно и есть, пока я не добавлю оператор ownTo :/   -  person Angad    schedule 28.06.2011
comment
Как выглядит модель пользователя? Если у вас есть $hasMany = 'Papers' или что-то подобное, вы можете получить эту ошибку.   -  person JJJ    schedule 28.06.2011
comment
Что произойдет, если вы закомментируете строку var $displayField = 'id';?   -  person generalopinion    schedule 28.06.2011


Ответы (1)


Мне удалось исправить эту проблему.

Проще говоря, ссылки модель-модель не являются улицей с односторонним движением, как это называется в документации CakePHP.

Например, если модель A belongsTo модель B, то модель B ДОЛЖНА быть hasOne или hasMany моделью A.

В моем случае синтаксис на принимающей стороне был ошибочным.

person Angad    schedule 28.06.2011