save()
save(object  $obj) : object
                Save handler, because DRY
Parameters
| object | $obj | Model to be saved  | 
                            
Throws
- \Ceo\Core\Managers\Exception
 Json encoded string of validation errors
Returns
object —Model
Core tag manager
Managers provide a service layer in front of models. Managers implement domain specific logic, checks and initialization that would normally live in multiple controllers.
getPaginator(integer $page = 1, integer $limit = 50) : \Ceo\Core\Managers\Ceo\Core\ModelHelpers\Paginator
Helps paginate models using the query bulder. Bit more complicated than the native array method, but works better for larger data sets
Because it's based on Phalcon's QueryBuilder, it supports a fluent filtering interface:
    $manager = $this->foo_manager;
    $items = $manager->getPaginator(1, 20)
        ->orderBy('created_at desc')
        ->where('name = :name:', array('name' => $name))
        ->andWhere('type = :type:', array('type' => $type))
        ->paginate();
    echo json_encode($items);
                                    | integer | $page | Current page  | 
                            
| integer | $limit | Per page limit  | 
                            
findFirstBySrn(string  $srn) : \Ceo\Core\Models\Tag
                Find first instance by SRN
| string | $srn | SRN  | 
                            
create(array  $input) : \Ceo\Core\Models\Tag
                Create new tag. Accepts: * slug * name * status * content
| array | $input | Tag data  | 
                            
update(integer $id, array $input) : \Ceo\Core\Models\Tag
Update tag. Accepts: * slug * name * status * content
Keep in mind Content is overwritten, not added to existing collection
| integer | $id | Tag ID  | 
                            
| array | $input | Tag data  |