Thanks everyone. I have deduced that it is to do with $title being some sort of reserved word in CakePHP. If I change the table name to (e.g.) salutations and recreate the M/V/Cs it works fine. The reason that only the 'view' view failed is that is references $title, while the other views reference $titles.
On Aug 7, 8:19 am, bram <[email protected]> wrote: > $title is a special variabe and it is used to set the page title. This > took me a long time to figure out. Also, if you set variables with > underscored, they don't end up in your views (they are available in > camelCased format). I hope that this will change soon! > > On Aug 6, 6:22 pm, jburns <[email protected]> wrote: > > > Hi - I am new to CakePHP and finding my way around. > > > I have used bake to create model/view/controllers for a simple table. > > Index works fine, displaying all records in the table, and so does > > edit. But when I click the 'view' link, I get this error: > > > Notice (8): Undefined variable: title [APP/views/titles/view.ctp, line > > 6] > > > I have added the code (straight out of bake) below. I can't see > > anything obviously wrong. Is this a known issue? Where is the error > > likely to be? > > > CODE: > > > The model: > > class Title extends AppModel { > > > var $name = 'Title'; > > var $validate = array( > > 'title' => array('notempty'), > > 'display_order' => array('numeric') > > ); > > > //The Associations below have been created with all possible keys, > > those that are not needed can be removed > > var $hasMany = array( > > 'User' => array( > > 'className' => 'User', > > 'foreignKey' => 'title_id', > > 'dependent' => false, > > 'conditions' => '', > > 'fields' => '', > > 'order' => '', > > 'limit' => '', > > 'offset' => '', > > 'exclusive' => '', > > 'finderQuery' => '', > > 'counterQuery' => '' > > ) > > ); > > > } > > > The controller (truncated) > > > class TitlesController extends AppController { > > > var $name = 'Titles'; > > var $helpers = array('Html', 'Form'); > > > function index() { > > $this->Title->recursive = 0; > > $this->set('titles', $this->paginate()); > > } > > > function view($id = null) { > > if (!$id) { > > $this->flash(__('Invalid Title', true), > > array('action'=>'index')); > > } > > $this->set('title', $this->Title->read(null, $id)); > > } > > > The view (truncated as it breaks on line 6 and subsequent rows): > > <div class="titles view"> > > <h2><?php __('Title');?></h2> > > <dl><?php $i = 0; $class = ' class="altrow"';?> > > <dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Id'); > > ?></dt> > > <dd<?php if ($i++ % 2 == 0) echo $class;?>> > > <?php echo $title['Title']['id']; ?> --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
