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
