Salut !
J'ai encore un petit problème pour comprendre le fonctionnement de cakephp.
Dans mon appli j'utilise 3 modèles reliés entre eux de cette façon :
User hasMany Category
Category hasMany Feed
J'aimerais avoir accès aux "Feed" depuis le modèle "User". La jointure ne se fait pas automatiquement de manière récursive.
Quelqu'un peut il m'aider ?
Merci d'avance,
euh... non je l'utilise de cette manière dans le controller :
Controller/UserController.php
$user_id = $this->Auth->user('id');
$this->User->id = $user_id;
$user = $this->User->read();
Voici les jointures dans mes modèles :
Model/User.php
class User extends AppModel {
public $hasMany = array(
'Category' => array(
'order' => 'Category.id DESC',
'dependent' => true,
)
);
}
Model/Category.php
class Category extends AppModel{
public $hasMany = array(
'Feed' => array(
'dependent' => true
)
);
public $belongsTo = array('User');
}
Model/Feed.php
class Feed extends AppModel {
public $validate = array(
'url' => array(
array(
'rule' => array('url', true),
'message' => "Lien incorrect"
)
)
);
public $belongsTo = array(
'Category' => array(),
'User' => array('foreignKey' => false, 'conditions' => array('Category.user_id = User.id'))
);
}
Avec le composant containable et la manipulation suivante cela fonctionne:
$this->User->contain('Category.Feed');
$this->User->id = $user_id;
debug($this->User->read());
Est-ce la bonne pratique ?