I've been playing around with this further, and have made a discovery.
Redirect is not to blame. Therefore let's say this one is solved
(thank you Jeremy) and I'll repost the real problem under a more
appropriate title.

Thanks Jeremy and Ryan for your invaluable assistance.

Adam.

On Feb 14, 5:02 pm, adam_g2000 <[email protected]> wrote:
> Thanks for pointing that out Ryan, I'm sorry I should have been more
> clear. I know why the error is occurring in the page (I can see
> currently there is the opportunity for it not to be set, and will
> revise that once I've finished sorting out the fact that it's not
> being sent by 'redirect'), it's the cause of the variable being MIA
> when redirect should be sending it that I need to fix first.
>
> The bug you've pointed out is (right now), kinda helpful in that it
> lets me know that categoryID is missing when it should be populated by
> redirect.
>
> I still have no idea why I'm not getting any parameters from redirect
> in my edit method:
>
>  $this->redirect(array(
>                        'controller' => 'subcategories',
>                        'action' => 'index',
>                        $categoryID
> ));
>
> On Feb 14, 11:58 am, Ryan Schmidt <[email protected]> wrote:
>
>
>
> > On Feb 13, 2011, at 16:50, adam_g2000 wrote:
>
> > > On Feb 14, 11:48 am, adam_g2000 wrote:
> > >> However I still have the problem with redirect. It doesn't seem to be
> > >> sending the variable, or my controller is not reading it. When I
> > >> reference the variable in the view, I get the error "Notice 8:
> > >> Undefined variable: categoryID [APP/views/subcategories/index.ctp,
> > >> line 44]" Here is my revised code:
>
> > > In case the index controller is useful, here it is.
>
> > > function index($categoryID = null) {
> > >            if (!empty($categoryID)) {
> > >                    App::import('Model','Category');
> > >                    $cat = new Category();
> > >                    $category = $cat->field('title', array('id' => 
> > > $categoryID));
> > >                    $this->set('category', $category);
> > >                    $this->set('categoryID', $categoryID);
> > >                    $conditions = array(
> > >                                            'conditions' => array(
> > >                                                    'Category.id' => 
> > > $categoryID),
> > >                                            'order' => 'Subcategory.order 
> > > ASC'
> > >                                            );
> > >                    $subcategories = $this->Subcategory->find('all', 
> > > $conditions);
> > >            } else {
> > >                    $this->set('category', 'All');
> > >                    $conditions = array(
> > >                                            'order' => array(
> > >                                                    'Category.title' => 
> > > 'ASC',
> > >                                                    'Subcategory.order' => 
> > > 'ASC'
> > >                                                    )
> > >                                            );
> > >                    $subcategories = $this->Subcategory->find('all', 
> > > $conditions);
> > >            }
> > >            $this->Subcategory->recursive = 0;
> > >            $this->set('subcategories', $subcategories);
> > >    }
>
> > Well, I see a path through this code that would result in categoryID not 
> > being set in the view. Do you? When function index is called without a 
> > parameter (i.e. when you access a URL without the id), then 
> > $this->set('categoryID', $categoryID) is not called, hence categoryID is 
> > not set in the view, hence PHP tells you that.
>
> > If you're going to set up your controller's index method that way (where 
> > the categoryID is optional), then you need to code your index template to 
> > allow categoryID to be optional as well.

-- 
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