/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $faker = Faker\Factory::create('en_GB');
     $categories = [];
     foreach (range(1, $this->categoriesCount) as $index) {
         $category = new Category();
         $category->name = $faker->word;
         $category->created_at = $faker->dateTime;
         $category->updated_at = $faker->dateTime;
         $category->save();
         $categories[$index] = $category;
     }
     foreach (range(1, $this->postCount) as $index) {
         $post = new Post();
         $post->title = $faker->sentence();
         $post->content = '<p>' . join('</p><p>', $faker->paragraphs()) . '</p>';
         $post->created_at = $faker->dateTime;
         $post->updated_at = $faker->dateTime;
         $post->save();
         foreach (range(1, rand($this->categoriesPerPost[0], $this->categoriesPerPost[1])) as $categoryIndex) {
             $post->categories()->save($categories[rand(1, $this->categoriesCount)]);
         }
     }
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $rules = ['published_at' => 'date_format:"Y-m-d H:i:s"', 'categories' => 'array|not_inInArray:1|integerInArray|existsInArray:post_category,id', 'status' => 'in:published,draft,trash', 'visibility' => 'in:public,private', 'tags' => 'array|stringInAarray', 'title' => 'min:1|max:100', 'slug' => 'required|alpha_dash|min:1|max:100', 'content' => ''];
     $validator = Validator::make(Input::only(array_keys($rules)), $rules);
     if ($validator->fails()) {
         throw new ResourceException($validator->errors()->first());
     }
     $post = new Post();
     $fields = ['slug', 'status', 'visibility', 'published_at'];
     foreach ($fields as $key => $field) {
         if (Input::has($field)) {
             $post->{$field} = Input::get($field);
         }
     }
     //field which can null/empty string
     $fields = ['title', 'content'];
     foreach ($fields as $key => $field) {
         if (Input::get($field) === '') {
             $post->{$field} = null;
         } elseif (Input::has($field)) {
             $post->{$field} = Input::get($field);
         }
     }
     $post->save();
     $post->categories()->sync(Input::get('categories', []));
     if (Input::has('tags')) {
         $post->retag(Input::get('tags'));
     }
     return $this->show($post->id);
 }