reponse fait sur le group cake-php
class ForumPerm extends AppModel {
var $name = 'ForumPerm';
var $primaryKey = 'group_id,forum_id';
//The Associations below have been created with all possible
keys,
those that are not needed can be removed
var $belongsTo = array(
'Group' => array('type' => 'INNER'),
'Forum' => array('type' => 'INNER')
);
}
à tester
On Dec 2, 8:36 am, foxmask <[EMAIL PROTECTED]> wrote:
> On 2 déc, 00:12, pluriels <[EMAIL PROTECTED]> wrote:> euh que tentes-tu de
> faire avec la requête que tu nous as transmise ?
> > j'essaie de deviner, mais ce serait plus simple si tu expliquais.
> > Pour ce que j'ai pu comprendre, tu veux afficher les 10 derniers
> > topics actifs parmi tes forums publics.
>
> oui c'est tout à fait exact !
>
>
>
> > - Il est bizarre de faire appel à une action du controller Posts pour
> > trouver un topic actif.
>
> ah oui suis je sot ;)
> en reprennant le tuto baker.cakephp.org j'ai omis d'adapter ;)
>
>
>
> > - je ne crois pas(mais je n'ai pas encore creusé la 1.2...) que tu
> > puisses faire une requête aussi complexe juste avec les relations.
> > C'est peut-être possible en jouant sur la définition des relations,
> > mais ça me paraît délicat.
>
> > Ma solution, si j'avais à le faire :
> > Comme tu connais déjà ta requête, je te conseille de partir
> > directement sur ton controller Topic pour créer une action :
> > Attention aux Alias de table si on veut pouvoir utiliser les notations
> > CakePHP
>
> > function lastTopics(){
> > $sql =
> > "SELECT Topic.id, Topic.subject FROM topics AS Topic INNER JOIN forums
> > AS Forum ON
> > Forum.id = Topic.forum_id LEFT JOIN forum_perms AS ForumPerm ON
> > (ForumPerm.forum_id=Forum.id AND
> > ForumPerm.group_id='xxx') WHERE (ForumPerm.read_forum IS NULL OR
> > ForumPerm.read_forum=1)
> > AND Topic.moved_to IS NULL ORDER BY Topic.last_post DESC LIMIT 10 ";
> > $resultset = $this->Topic->query($sql);
> > return $resultset;
>
> > }
>
> > ensuite dans ton élément,
> > $pt_active_topics = $this->requestAction('topics/lastTopics/');
>
> ca me parait bien comme solution aussi.
>
> mais dans l'absolue les INNER JOIN on en trouve pas qui soit générés
> via les HATB c'est ca ?
>
> en tout cas merci pour la correction.
--~--~---------~--~----~------------~-------~--~----~
Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---