There might be various problems regarding to undefined index in CakePHP and there are many solutions to it and some links i went through to fix the problem are:
Newby: "Undefined index" error
Something on CakePHP Notice (8): Undefined Index
CakePHP: Rendering an undefined index
However these couldn't help solve my problem, being newbie in Cake and after going through these posts, it clicked me that i might be doing something silly mistake.
Actually i was displaying news in my default page where I declared the variable news in apps_controller as below:
function beforeRender(){
$this->loadModel('News');
$todayNews = $this->News->find('first', array( 'order' => array( 'News.updated' => 'DESC' ) ) );
$this-> set('news', $todayNews);
}
And in my news controller I was using below code to render my index page:
function admin_index()
{
$allNews = $this->News->find('all',
array(
'order' => array
( 'News.updated' => 'DESC' ) )
);
$this -> set('news',$allNews);
}
You can see both had "news" being set. So when i called my index page i was always getting
Notice (8): Undefined index: News [APP\views\news\admin_index.ctp, line 18]
This made me go round and round for an hour... finally found out ti was the same variable causing problem.
then I changed the variable in my app_controller to be
function beforeRender(){
$this->loadModel('News');
$todayNews = $this->News->find('first', array( 'order' => array( 'News.updated' => 'DESC' ) ) );
$this-> set('displaynews', $todayNews);
}
and called the same in my default layout page and all worked like a charm... hope this will help save you some time that might use creatively..... Enjoy coding.
Read more!