Solved it by doing the following:

                $this->News->NewsTag->bindModel(array('belongsTo' => 
array('News',
'Tag')));
                $news = $this->News->NewsTag->find('all', array(
                                'order'=>'News.created DESC',
                                'conditions' => array('NewsTag.tag_id' => 
$tag_id)));

On Apr 16, 8:18 am, Cepheus <[email protected]> wrote:
> I'm experiencing a problem with this; I can't figure out how to sort
> the news according to their date created. They are being returned to
> me in an array consisting of tags, that each have a number of news
> associated to them. Is there an elegant way I can sort the returned
> news so that they're being displayed in descending order?
>
> Thanks in advance,
> Michael.
>
> On Apr 16, 7:21 am, John Andersen <[email protected]> wrote:
>
> > You should perform a find in the Tag model, not in the news model,
> > like:
>
> > $taggedNews = $this->Tag->find('all', array(
> >    'conditions' => array( 'Tag.name' => [your tag value here] ),
> >    'recursive' => 1 ) );
>
> > Enjoy,
> >    John
>
> > On Apr 16, 12:55 am, Cepheus <[email protected]> wrote:
>
> > > Hey everyone,
>
> > > I've setup a simple news page and I'm trying to add tags to my news
> > > posts. I've read a couple of tutorials on it and I've got the HABTM
> > > relationship working.
> > > My problem is that I'm not sure how to correctly query for news items
> > > that belong to a specific tag. I'm currently doing something like
> > > this:
>
> > >     function index()
> > >     {
> > >         $news = $this->News->find('all');
>
> > >         if (isset($this->params['requested']))
> > >         {
> > >             return $news;
> > >         }
> > >         else
> > >         {
> > >             $this->set('news', $news);
> > >         }
> > >     }
>
> > > Which gives me all news items as below:
>
> > > Array
> > > (
> > >     [0] => Array
> > >         (
> > >             [News] => Array
> > >                 (
> > >                     [id] => 1
> > >                     [title] => Hello world!
> > >                     [author] => Michael
> > >                     [content] =>
>
> > > This is the first post!
>
> > >                     [created] => 2009-04-09 12:49:28
> > >                     [modified] => 2009-04-15 23:38:23
> > >                 )
>
> > >             [Tag] => Array
> > >                 (
> > >                     [0] => Array
> > >                         (
> > >                             [id] => 3
> > >                             [name] => Profile
> > >                             [NewsTag] => Array
> > >                                 (
> > >                                     [id] => 1
> > >                                     [news_id] => 1
> > >                                     [tag_id] => 3
> > >                                 )
>
> > >                         )
>
> > >                 )
>
> > >         )
>
> > >     [1] => Array
> > >         (
> > >             [News] => Array
> > >                 (
> > >                     [id] => 2
> > >                     [title] => Another newspost
> > >                     [author] => Michael
> > >                     [content] => Lorem ipsum dolor sit amet,
> > > consectetur adipiscing elit. Proin pellentesque dictum metus. Donec
> > > consectetur, nisi ac mollis pulvinar, urna enim semper
> > >                     [created] => 2009-04-09 18:29:32
> > >                     [modified] => 2009-04-09 18:29:32
> > >                 )
>
> > >             [Tag] => Array
> > >                 (
> > >                 )
>
> > >         )
>
> > > ... and so on.
>
> > > I tried rewriting it to just display news items that belong to the tag
> > > with id 3:
>
> > >     function index()
> > >     {
> > >         $news = $this->News->find(array('NewsTag.tag_id'=>3));
>
> > >         if (isset($this->params['requested']))
> > >         {
> > >             return $news;
> > >         }
> > >         else
> > >         {
> > >             $this->set('news', $news);
> > >         }
> > >     }
>
> > > But this does not work, instead it gives me this error:
>
> > > Warning (512): SQL Error: 1054: Unknown column 'NewsTag.tag_id' in
> > > 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line
> > > 525]
>
> > > Does anyone know what I can do to fix this problem?
>
> > > Thanks in advance,
> > > Michael.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to