Вы определенно хотите ввести поле с именем id, так как несколько избыточно называть поле user_id
, если это поле id в таблице users
. В дополнение к этому CakePHP обрабатывает некоторые поля как automagic . Automagic означает, что cakephp может идентифицировать внешние ключи без вас - разработчика, который должен явно их указывать. Но чтобы CakePHP помог вам с automagic , вам нужно придерживаться нескольких соглашений . Одно из этих соглашений, которое когда-то выучилось довольно удобно, заключается в том, что внешние ключи автоматически обнаруживаются, когда вы их называете YOUR_MODEL_NAME_IN_SINGULAR_HERE_id;
например: автор имеет много сообщений, пост принадлежит автору (*). В этом случае вы можете сохранить внешний ключ как autor_id
в таблице posts
. Позже, когда вы используете скрипт cake bake
или функцию скаффолдинга, вы поймете силу соглашения!
Еще одна вещь, которую я заметил в вашем посте, это то, что вы могли бы пропустить, что в CakePHP установлены отношения двунаправленно . Это означает, что вы работаете не только с одним определением hasMany , но и в другом направлении с определением , принадлежащим .
Поэтому я предлагаю вам перефразировать ваши высказывания, чтобы реализовать более поздний кулер.