PHP / CakePHP: отношение HasOneBelongToOne - PullRequest
0 голосов
/ 08 ноября 2011

Я пытаюсь выяснить, как лучше всего создать отношение «Имеет один, принадлежащий одному» в CakePHP.К сожалению, я не нашел ничего, что помогло мне в Интернете.

Я пытался действовать так:

Модель компании:

var $belongsTo = array(
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'user_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

Модель пользователя:

var $hasOne = array(
    'Company' => array(
        'className'    => 'Company',
        //'foreignKey' => 'user_id',
        'dependent'    => true
    )
);

Но все же cakePHP позволяет мне создавать две компании для одного пользователя.

И вот моя схема базы данных: Company: id, name, ..., user_id Пользователь: id, name, ...

Большое спасибо

Ответы [ 3 ]

3 голосов
/ 08 ноября 2011

CakePHP может обрабатывать только следующие отношения:

  • один к одному
  • один ко многим
  • много к одному
  • много ко многим

Подробнее здесь

Если вы хотите сделать «Имеет один, принадлежащий одному», тогда используйте функцию hasOne в обоих объектах.

0 голосов
/ 10 ноября 2011

В вашей базе данных, корпоративной таблице, user_id должен быть уникальным

0 голосов
/ 08 ноября 2011

Если у каждого пользователя есть только одна компания, и каждая компания принадлежит одному и только одному пользователю, не должны ли они быть в одной таблице?

как:

USER
Id
Name
...
Company

Извините, если я не должен задавать вопросы здесь, но мне показалось уместным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...