Hi all.
Here I am again.
Today I have a quick tip for beginners using Zend Framework.
Do not insert pre and post code (for database) in your Controller. The Zend_Db_Table_Row is for that.
Lets create our DatabaseTable class for Posts:
/**
* Located in .../models/DbTable/Posts.php
*/
class Posts extends Zend\_Db\_Table_Abstract
{
protected $_primary = 'id';
protected $_name = 'posts';
protected $_rowClass = 'Post'; // here we linked the Post class above
}
Now, we have to create Post class using Zend_Db_Table_Row:
/**
* Located in .../models/Post.php
*/
class Post extends Zend\_Db\_Table\_Row\_Abstract
{
protected function _insert() // before insert
{
$this->postDate = date('c');
// ...
}
protected function _postInsert() // after insert
{
// send mail, for example
}
protected function _update() // before update
{
// I can access a database field
// for example -> if the user changed the title using a form
// I can access the old and new title...
$oldTitle = $this->_cleanData['title']; // what I have in the database
$newTitle = $this->title; // sent by user
}
// we also have
protected function _postUpdate(); // post update
protected function _delete(); // before delete
protected function _postDelete(); // after delete
}
And… in your controller:
$postsDT = new Posts(); $newRow = $postsDT->createRow($form->getValues()); $newRow->save(); // add the postDate field using Zend\_Db\_Table_Row -> Post.php
That’s all. Thanks!
