Hello,
Assuming you have a newsletter Controller and a newsletter Model :
in NewsletterController (newsletter_controller.php) :
class NewsletterController extends AppController {
var name = 'Newsletter';
function archive_list(){
$this->set('archives', $this->Newsletter->find('all',
array("Newsletter.publish_date" => "< NOW()"))
}
}
In your archive list view (archive_list.ctp), you'll be able to
iterable over your archives through $archives.
or .. in your controller above, (assuming its not the
NewsletterController) just do :
var uses = array('Newsletter');
function archive_list(){
$this->set('archives', $this->Newsletter->getArchives());
}
in the Newsletter model, create a method for your archive list :
function getArchives(){
$sql = 'SELECT id, to_char(publish_date, \'Mon, YYYY\') AS
month FROM newsletter ' . 'WHERE publish_date < NOW() ORDER BY
publish_date DESC';
return $this->query($sql);
}
.. or simply correct the typo $this->Newsletter instead of $this-
>newsletter.
On Dec 23, 4:09 am, subtropolis <[EMAIL PROTECTED]> wrote:
> I'm a n00b here and have been redoing an existing site in order to
> learn the Cake way. I'm jumping straight into the 1.2 branch.This is
> my first cry for help.
>
> I have a section for an online newsletter. Several pages list links
> for the archived issues. From what i've read, i should use an element
> for this. I've created the file newsletter_archive_list.ctp in the
> elements dir with the following:
>
> $archive_list = $this->requestAction('newsletter/archive_list');
>
> // followed by markup to list the links
>
> The controller's archive_list method is simply:
>
> function archive_list()
> {
> $sql = 'SELECT id, to_char(publish_date, \'Mon, YYYY\') AS
> month FROM newsletter '
> . 'WHERE publish_date < NOW() ORDER BY publish_date DESC';
>
> return $this->newsletter->query($sql);
> }
>
> The thing is, as i understand it, it's better to place as much code in
> the model, rather than the controller (which seems quite sensible).
> However, i haven't been able to figure out how to then call the
> function from the model.
>
> With the method in the controller, i get this error:
>
> Undefined property: NewsletterController::$newsletter [APP/
> controllers/newsletter_controller.php, line 25]
>
> My head is spinning. The manuals are really not very clear on this. I
> understood that the model ($newsletter) was available anywhere inside
> the controller. Can someone please point me in the right direction?
>
> (extra points for explaining how the new cache system, would work
> here :-)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake
PHP" 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
-~----------~----~----~----~------~----~------~--~---