/** * 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); }