2013-09-30 2 views
2

У меня две модели: User и Post. Но здесь соотношение основано на username в обеих таблицах. то есть. Post.username и User.usernameCakePHP отношения с различными ключами ассоциации

Я пытаюсь со следующими hasMany соотношения в user.php с CakePHP 1.3

'Post' => array(
    'className' => 'Post', 
    'dependent' => true, 
    'foreignKey' => 'username', 
    'associatedKey' => 'username' 
), 

Но это не создает отношения между двумя моделями, когда я пытаюсь получить данные с помощью.

pr($this->User->find('all')); 

Вот выход, даже если сообщения есть для пользователя '' Vinni

Array(
    [User] => Array(

     id => 2 
     name => 'Vinay', 
     username => 'vinni' 

     [Post] => Array 
     (

     ) 

    ) 
) 

ответ

1

Исправьте модели.

Пользователь принадлежит Профиль
Профиль имеет много пользователей

<?php 
App::uses('AppModel', 'Model'); 
class User extends AppModel { 

    $belongsTo = array(
    'Profile' => array(
     'className' => 'Profile', 
     'foreignKey' => 'username' 
    ) 
); 


<?php 
App::uses('AppModel', 'Model'); 
class Profile extends AppModel { 

    $hasMany = array(
    'User' => array(
     'className' => 'User', 
     'foreignKey' => 'username' 
    ) 
); 
+0

Я попытался это, но он не работает. Я получаю связанную модель как ключ, но без данных. –

+0

Я редактирую свой ответ. Я поместил неверную информацию (вместо группы Профиль). Итак, повторите попытку, пожалуйста. –