2016-06-28 3 views
0

У меня есть таблицаПользователь имеет отношение многих пользователей CakePHP Way

Users: 
id|name|surname 

Теперь нужно связать пользователей друг с другом таким образом, что каждый Пользователь имеет много пользователей (многими пользователями я на самом деле имею в виду друзей, например, друзей facebook).

Эти конвенции CakePHP один, вероятно, в конечном итоге с Wierd таблиц, как это:

Users 
id|name|surname 

UserUsers 
id|user_id|user_id 

Каков наилучший способ изменить свою структуру для достижения этой цели. Обратите внимание, что это, возможно, было задано до НО, насколько я искал, он специально не задавал вопрос о том, чтобы CakePHP 3.X учитывал соглашения Cakephp и все.

+2

Имя таблицы соединений должно быть UserUsers, и вы не можете иметь 2 user_id, поданных в той же таблице базы данных. Я бы добавил вторую модель под названием «Друзья», которая подключена к таблице «Пользователи» и имеет модель объединения «UsersFriends». – rrd

+0

Версия CakePHP, которую вы используете или даже используете CakePHP, не имеет никакого отношения к ответу. Это немного похоже на прохождение маршрутов от A до B ** специально для синих автомобилей **. – AD7six

+0

Возможный дубликат [Друзей в CakePHP 2.x] (http://stackoverflow.com/questions/11277974/friendships-in-cakephp-2-x) (Сначала найден дубликат, если он не решит ваш вопрос, пожалуйста, выполните поиск для «схемы дружбы» или аналогичной) – AD7six

ответ

0

Я считаю, что вы можете определить отношения, как это в вашем UsersTable в торт 3:

$this->belongsTo('Users', [ 
      'className' => 'Users', 
      'foreignKey' => 'facebook_user_id', 
      'joinType' => 'LEFT' 
     ]); 

Вы должны определить facebook_user_id и установить его в качестве внешнего ключа к вашему идентификатору.

Смежные вопросы