private function setUpObj() { $slug = 'slug_' . rand(0, 10000); $cat = Category::create(['title' => $slug, 'slug' => $slug]); $tag = Tag::create(['title' => $slug, 'slug' => $slug]); $user = User::create(['name' => 'user', 'email' => rand(0, 10000), 'password' => 'user', 'picture' => 'user']); $obj = new Post(); $obj->title = 'The Title'; $obj->content = 'content'; $obj->description = 'description'; $obj->header_image = 'header_image'; $obj->category_id = $cat->id; $obj->user_id = $user->id; $obj->save(); $obj->tags()->attach($tag->id); $obj->save(); return $obj; }
/** * Store a newly created Post in storage. * * @return Response */ public function store() { $params = Request::all(); $post = new Post($params); $tags = isset($params['tags']) ? $params['tags'] : []; if ($post->save()) { $post->tags()->attach($tags); return $post; } else { throw new CrudException('post:store'); } }
/** * Tes menambahkan Post dan relasinya dengan Tag */ public function testTagRelation() { $cat = Category::create(['title' => 'uncategorized']); $user = User::create(['name' => 'user', 'email' => 'user', 'password' => 'user', 'picture' => 'user']); $tags = []; $tags[] = Tag::create(['title' => 'title']); $obj = new Post(); $obj->title = 'title'; $obj->category_id = $cat->id; $obj->user_id = $user->id; $saved = $obj->save(); $this->assertTrue($saved); if ($saved) { $ids = Collection::make($tags)->map(function ($tag) { return $tag->id; })->toArray(); $obj->tags()->attach($ids); $temp_tags = $obj->tags()->get(); $this->assertEquals(count($tags), count($temp_tags)); foreach ($temp_tags as $key => $temp_tag) { $this->assertEquals($temp_tag->id, $tags[$key]->id); } } }