Hi.
I just recently started learning the Zend Framework and bought an excellent
book: pro php by Kevin McArthur. I have been following a lot of the
examples there are in the book, but there is one example that doesn't seem
to work properly.
The error I get is:
Fatal error: Call to a member function getActionController() on a non-object
in
C:\wamp\bin\php\ZendFramework\ZendFramework-1.11.3\library\Zend\Controller\Action\HelperBroker.php
on line 299
The error is this line of code: (when I remove it, there is no error :))
$this-getHelper('FlashMessenger')-addMessage($field . ' : '. $message);
I hope you can help me out,
Nicolai
The example is listing 15-16 (if someone has the book):
class CustomersController extends Zend_Controller_Action {
public function indexAction() {
$table = new Customers(); // Må så tage my model Customers (from
application/models/Customers.php)
$this-view-customers = $table-fetchAll();
}
public function redirectasAction() {
$this-getHelper('redirector')-goto('index');
}
public function redirectAction() {
$this-getHelper('FlashMessenger')-addMessage(This was set at the
redirector);
$this-getHelper('redirector')-goto('show');
}
public function showAction() {
$this-view-messages =
$this-getHelper('FlashMessenger')-getMessages();
}
public function addAction() {
Zend_Debug::dump($this-getRequest()-getPost());
$request = $this-getRequest();
//Deterine if processing a post request
if($request-isPost()) {
//Filter tags from the name field
$filters = array(
'name' = 'StripTags'
);
//Validate name is not less than 1 character and not more than
64
$validation = array(
'name' = array (
array(
'StringLength', 1, 64)
)
);
//Initialize Zend_Filter_input passing it the entire getPost()
array
$zfi = new Zend_Filter_Input($filters, $validation,
$request-getPost());
//If the validators passed this will be true
if($zfi-isValid()) {
//Fetch the data from zfi directly and create an array for
Zend_Db
$clean = array();
$clean['name'] = $zfi-name;
//Create an instance of the customers table and insert the
$clean row
$customers = new Customers();
$customers-insert($clean);
//Redirect to the display page after adding
$this-getHelper('redirector')-goto('index');
} else {
// The form didn't validate, get the messages from ZFI
foreach($zfi-getMessages() as $field=$messages) {
//Put each ZFI message into the FlashMessenger so it
shows on the form
foreach($messages as $message) {
$this-getHelper('FlashMessenger')-addMessage($field . ' : '. $message);
}
}
$this-getHelper('redirector')-goto('add');
}
}
// not a post request, check for flash messages and expose to the
view
if($this-getHelper('FlashMessenger')-hasMessages()) {
$this-view-messages=$this-getHelper('Flashmessenger')-getMessages();
}
}
}
--
View this message in context:
http://zend-framework-community.634137.n4.nabble.com/Error-on-non-object-Pro-PHP-book-tp3335964p3335964.html
Sent from the Zend Framework mailing list archive at Nabble.com.