J'ai un petit modèle de base de données complexe sur lequel je ne suis pas en mesure de faire un bon trouverCakePHP Relation complexe Trouver
utilisateur (id, nom ...)
1 Harsha
2 Jasmine
modules (id, nom)
1 Users
2 Restaurants
3 Dishes
restaurant (id, nom ....)
1 KFC
2 Pizza Hut
plats
(id, nom, restaurant_id ..)
1 Cheese Pizza 2
articles (id, MODULE_ID, item_id)
1 1 1 (refers to User Harsha)
2 2 1 (Refers to KFC)
3 2 2 (Refers to Pizza Hut)
4 1 2 (Refers to User Jasmine)
5 3 1 (Refers to Cheese Pizza)
commentaires (id, id_parent, message, item_id, commenters_id)
1 0 "I love the ambience of Pizza Hut" 3 1 (Refers to Harsha reviewing Pizza Hut)
2 1 "You remind me of that kid in the next table who freaked me out." 3 2 (Refers to Jasmine Replying to Harsha's review on Pizza Hut)
3 0 "I love Cheese Pizza in Pizza Hut" 5 1 (Refers to the Cheese Pizza Review by Harsha)
J'essaie de trouver les critiques faites par Harsha de tous les restaurants, mais je ne suis pas en mesure de les limiter aux critiques de restaurants seul. Je reviens les avis Dish aussi
Voici le code que je l'ai utilisé // vérifie si l'utilisateur est connecté si oui recueille l'ID $ id = $ this -> _ loggedIn();
// Find the ItemID from the Item Table
$itemId = $this->User->Item->itemId('1', $id);
// Finding the User Data and last Status Message
$user = $this->User->Item->find('first', array('conditions' => array('Item.id' => $itemId), 'contain' => array('User', 'StatusMessage' => array('limit' => 1, 'order' => 'StatusMessage.created DESC'))));
// Find the Restaurant Reviews of the Current User
$reviews = $this->User->Item->Review->find('all', array('conditions' => array('Review.commenters_item_id' => $itemId, 'Review.pid = 0'), 'order' => array('Review.created DESC'),
'contain' => array(
'Item' => array(
'User' => array(
'fields' => array('id', 'first_name', 'last_name', 'username', 'file')),
'Restaurant' => array('fields' => array('id', 'name', 'slug', 'file', 'area_id', 'city_id'),
'Area')),
'ReviewReply' => array(
'Item' => array(
'User' => array(
'fields' => array('id', 'first_name', 'last_name', 'username', 'file')))))));
cool .. mais quand je fais la recherche Je reçois les commentaires de la personne .. Restaurant ainsi que des plats –
Avez-vous inclus la ligne id du module? – Leo
non. Je pensais que les coditions à ce niveau est pour seulement trouver à partir de la table référencée ce tableau de révision. sensationnel. Le gâteau est magique: D –