Thursday, July 5, 2012

Call to a member function element() on a non-object

I use the CakeGrid plugin,but I met some problems.

this is the error log:
2012-07-05 15:13:26 Error: Fatal Error (1): Call to a member function element() on a non-object in [G:\htdocs\cakedemo\app\Plugin\CakeGrid\View\Helper\GridHelper.php, line 178]
2012-07-05 15:13:26 Error: [FatalErrorException] Call to a member function element() on a non-object
#0 G:\htdocs\cakedemo\lib\Cake\Error\ErrorHandler.php(162): ErrorHandler::handleFatalError(1, 'Call to a membe...', 'G:\htdocs\caked...', 178)
#1 [internal function]: ErrorHandler::handleError(1, 'Call to a membe...', 'G:\htdocs\caked...', 178, Array)
#2 G:\htdocs\cakedemo\lib\Cake\Core\App.php(924): call_user_func('ErrorHandler::h...', 1, 'Call to a membe...', 'G:\htdocs\caked...', 178, Array)
#3 G:\htdocs\cakedemo\lib\Cake\Core\App.php(897): App::_checkFatalError()

my Controller:
<?php
App::uses('AppController','Controller');
class GeneralsController extends AppController{
   var $helpers = array('CakeGrid.Grid');
public function apply(){
$this->set('name','general.apply');
}
public function mid(){
$this->set('name','general.mid');
}
public function end(){
$this->set('name','general.end');
}
}

my View: (apply.ctp)
<h1> <?php echo $name; 
echo '<br>';
echo __('Role');
$this->Grid->addColumn('Order Id', '/Order/id');
$this->Grid->addColumn('Order Date', '/Order/created', array('type' => 'date'));
$this->Grid->addColumn('Order Amount', '/Order/amount', array('type' => 'money'));

$this->Grid->addAction('Edit', array('controller' => 'orders', 'action' => 'edit'), array('/Order/id'));
debug( $this->Grid);
echo $this->Grid->generate($results);
?> </h1>

the GridHelper.php
function generate($results){
//$View = $this->__view();
$View=&ClassRegistry::getObject('view');
$directory = $this->__settings['type'];
if($this->__settings['type'] == 'csv' && !empty($this->__totals)){
array_unshift($this->__columns, array(
'title' => '',
'valuePath' => '',
'options' => array(
'type' => 'empty'
)
));
}
//-- Build the columns
$headers = $View->element($this->elemDir . DS . 'grid_headers',array(             //line 178 :the error occurs
'plugin'  => $this->plugin_name, 
'headers' => $this->__columns,
'options' => $this->__settings
));
$results = $this->results($results);
$generated = $View->element($this->elemDir . DS . 'grid_full', array(
'plugin'  => $this->plugin_name,
'headers' => $headers,
'results' => $results,
'options' => $this->__settings
));
return $generated;
}

 anyone help me,Thanks!

--
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
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: