Hi all. I'm a Cake newbie so this may be quite obvious to many, but I'm 
learning on the job, and I know what I want to achieve, just not too sure 
how to achieve it.

In my ProductsController, originally 'cake baked' in 2.0 RC3, I have the 
following:

public function view($id = null) {
    $this->Product->id = $id;
    if (!$this->Product->exists()) {
        throw new NotFoundException(__('Invalid product'));
    }
    if ($this->Product->field('published') == true) {
        $this->set('product', $this->Product->read(null, $id));
    } else {
        // TODO: consider throw new NotFoundException too
        $this->Session->setFlash(__('That product is not published.'));
        $this->redirect(array('action' => 'index'));
    }
}

The purpose of the if/else structure is to see if a given product has been 
published or not, which is achieved through a 'published INT (1)' column in 
the products table. I believe I am doing this the 'right' way, and it works 
fine within /products, but when I come to my CategoriesController's view 
action (below, passed /categories/view/1 and so on) it shows all items in a 
given category whether published or not:

public function view($id = null) {
    $this->Category->id = $id;
    if (!$this->Category->exists()) {
        throw new NotFoundException(__('Invalid category'));
    }
    // some logic which checks for products in this category which are not 
published.
    $this->set('category', $this->Category->read(null, $id));
}

Note: Product belongsTo Category, Category hasMany Product.

I hope this is clear enough. 

Cheers.

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to