2010-02-06 3 views
0

Что использование создания отношений какторт PHP использование таблицы отношений

var $belongsTo = array(
     'UserType' => array(
      'className' => 'UserType', 
      'foreignKey' => 'user_type_id', 
      'conditions' => '', 
      'fields' => '', 
      'order' => '' 
     ) 
    ); 
    //The Associations below have been created with all possible keys, those that are not needed can be removed 
    var $hasMany = array(
     'UserOpenid' => array(
      'className' => 'UserOpenid', 
      'foreignKey' => 'user_id', 
      'dependent' => true) 
); 

Что делать, если я добавил таблицу, в которой создан в смысле «belongsTo», в «hasMany»? Возникает любая ошибка. Как торт использует отношения, указанные в модели?

+0

Можете ли вы поместить свой образец кода в теги кода? Это облегчит чтение. –

+0

ok, если я указал как это сообщение hasMany пользователей, я не могу получить имя пользователя rite? – udhaya

+0

Я думаю, вы скорее говорите о том, что у пользователей есть много сообщений. В этом случае, когда вы выберете конкретного пользователя, вы также получите все его комментарии. Читайте об ассоциациях моделей в Поваренной книге http://book.cakephp.org/view/78/Associations-Linking-Models-Together – PawelMysior

ответ

1

Объединив модели вместе, вы сообщаете CakePHP, что нужно получить из базы данных при использовании функции find(). Пример:

posts BelongsTo users = Когда вы получаете сообщение, вы также получите данные о пользователе, которому принадлежит этот пост (posts.user_id = users.id).

0

В дополнение к ответу Pawel в:

«belongsTo», «hasMany» и т.д., просто термины выбраны, чтобы отразить, как база данных предназначена и как таблицы связаны друг с другом, который определяет, как будут получены данные ,

  • belongsTo означает отношение один-ко-многим, с моделью «принадлежащий» находясь на «многих»
  • hasMany означает другую сторону отношения один-ко-многим
  • hasOne Значит один-к-одному
  • hasAndBelongsToMany означает многие-ко-многим

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