Advertisement
Guest User

Untitled

a guest
Apr 20th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.59 KB | None | 0 0
  1. <?php
  2.  
  3. class Model_Filme extends \Orm\Model
  4. {
  5.     protected static $_properties = array(
  6.         'id',
  7.         'title',
  8.         'slug',
  9.         'sinopse',
  10.         'poster',
  11.         'created_at',
  12.         'updated_at',
  13.     );
  14.  
  15.     protected static $_observers = array(
  16.         'Orm\Observer_CreatedAt' => array(
  17.             'events' => array('before_insert'),
  18.             'mysql_timestamp' => false,
  19.         ),
  20.         'Orm\Observer_UpdatedAt' => array(
  21.             'events' => array('before_update'),
  22.             'mysql_timestamp' => false,
  23.         ),
  24.         'Orm\\Observer_Slug' => array(
  25.             'source' => 'title',
  26.             'property' => 'slug',
  27.         ),
  28.     );
  29.  
  30.     protected static $_many_many = array('tags');
  31.    
  32.     protected static $_table_name = 'filmes';
  33.  
  34.     public static function save_filme()
  35.     {
  36.         $data = Input::post('data');
  37.         $val = static::validate_filme();
  38.  
  39.         if ($val->run()) {
  40.             if ($data['id']) {
  41.                 $filme = static::find($data['id'])->set($data);
  42.                 unset($filme->tags);
  43.             } else {
  44.                 $filme = static::forge($data);
  45.             }
  46.  
  47.             foreach ($data['tags'] as $tag_id) {
  48.                 $filme->tags[$tag_id] = Model_Tag::find($tag_id);
  49.             }
  50.  
  51.             $filme->save(); return array($filme, true, null, null);
  52.         } else {
  53.             return array(static::forge($data), false, $val->error(), $data['tags']);
  54.         }
  55.     }
  56.  
  57.     public static function validate_filme()
  58.     {
  59.         $val = Validation::forge();
  60.  
  61.         $val->add_field('data[poster]', 'Filme Poster', 'required');
  62.         $val->add_field('data[title]', 'Título', 'required');
  63.         $val->add_field('data[sinopse]', 'Sinopse', 'required');
  64.         $val->add_field('data[tags]', 'Tags', 'required');
  65.  
  66.         $val->set_message('required', 'O campo :label é obrigatório.');
  67.  
  68.         return $val;
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement