UITLEG
Ik probeer een N > M database relatie te bouwen dmv scaffolding in CakePHP (ik ben redelijk nieuw met CakePHP). Helaas loop ik steeds tegen de lamp.
DATABASE LAYOUT
update: wat ik probeer duidelijk te maken heet officieel "self-referencial many-to-many relationship"
In de friends tabel heeft de account_id en de friend_account_id een relatie met id in de accounts tabel. Een account kan dus meerdere friend_accounts hebben.
accounts
id
username
friends
id
account_id
friend_account_id

Hier een voorbeeld van de output van de friends tabel;
In het bovenstaande geval is;
account 1 bevriend met account 2 en 3
account 2 bevriend met account 3
account 3 bevriend met account 2
CAKEPHP MODELS
RESULTAATPROBLEEM
p.s. is dit voldoende / goede informatie voor een topicstart? Of kan niemand er een touw aan vastknopen?
Ik probeer een N > M database relatie te bouwen dmv scaffolding in CakePHP (ik ben redelijk nieuw met CakePHP). Helaas loop ik steeds tegen de lamp.
DATABASE LAYOUT
update: wat ik probeer duidelijk te maken heet officieel "self-referencial many-to-many relationship"
In de friends tabel heeft de account_id en de friend_account_id een relatie met id in de accounts tabel. Een account kan dus meerdere friend_accounts hebben.
accounts
id
username
friends
id
account_id
friend_account_id

Hier een voorbeeld van de output van de friends tabel;
| id | account_id | friend_account_id |
| 1 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 2 | 3 |
| 4 | 3 | 2 |
In het bovenstaande geval is;
account 1 bevriend met account 2 en 3
account 2 bevriend met account 3
account 3 bevriend met account 2
CAKEPHP MODELS
PHP: account.php
1
2
3
4
5
6
7
8
9
| <?php class Account extends AppModel { var $name = 'Account'; var $displayField = 'username'; } ?> |
PHP: friend.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <?php class Friend extends AppModel { var $name = 'Friend'; var $hasAndBelongsToMany = array('Account' => array('className' => 'Account', 'conditions' => '', 'order' => '', 'foreignKey' => 'account_id' ) ); } ?> |
RESULTAATPROBLEEM
- Op de add friend pagina zie ik id's ipv account namen. Toch geef ik dit wel op in het Account AppModel.
- Als ik een nieuwe friend toevoeg dan krijg ik geen dropdown. (zoals hier bij een ander deel op de website wel). Het verschil is dat deze met belongto is opgebouwd ( een N > N relatie, en dus geen N > M)
p.s. is dit voldoende / goede informatie voor een topicstart? Of kan niemand er een touw aan vastknopen?
[ Voor 18% gewijzigd door DutchStoner op 24-04-2007 18:25 ]