public function showPost($slug, Request $request) { $post = Post::with('tags')->whereSlug($slug)->firstOrFail(); $tag = $request->get('tag'); if ($tag) { $tag = Tag::whereTag($tag)->firstOrFail(); } return view($post->layout, compact('post', 'tag', 'slug')); }
/** * Sync tag relation adding new tags as needed * * @param array $tags */ public function syncTags(array $tags) { Tag::addNeededTags($tags); if (count($tags)) { $this->tags()->sync(Tag::whereIn('tag', $tags)->lists('id')->all()); return; } $this->tags()->detach(); }
/** * Return data for a tag index page * * @param string $tag * @return array */ protected function tagIndexData($tag) { $tag = Tag::where('tag', $tag)->firstOrFail(); $reverse_direction = (bool) $tag->reverse_direction; $posts = Post::where('published_at', '<=', Carbon::now())->whereHas('tags', function ($q) use($tag) { $q->where('tag', '=', $tag->tag); })->where('is_draft', 0)->orderBy('published_at', $reverse_direction ? 'asc' : 'desc')->simplePaginate(config('blog.posts_per_page')); $posts->addQuery('tag', $tag->tag); $page_image = $tag->page_image ?: config('blog.page_image'); return ['title' => $tag->title, 'subtitle' => $tag->subtitle, 'posts' => $posts, 'page_image' => $page_image, 'tag' => $tag, 'reverse_direction' => $reverse_direction, 'meta_description' => $tag->meta_description ?: config('blog.description')]; }
/** * Execute the command. * * @return array of fieldnames => values */ public function handle() { $fields = $this->fieldList; if ($this->id) { $fields = $this->fieldsFromModel($this->id, $fields); } else { $when = Carbon::now()->addHour(); $fields['publish_date'] = $when->format('M-j-Y'); $fields['publish_time'] = $when->format('g:i A'); } foreach ($fields as $fieldName => $fieldValue) { $fields[$fieldName] = old($fieldName, $fieldValue); } return array_merge($fields, ['allTags' => Tag::lists('tag')->all()]); }
public function run() { $tags = Tag::lists('tag')->all(); Post::truncate(); DB::table('post_tag_pivot')->truncate(); factory(Post::class, 20)->create()->each(function ($post) use($tags) { if (mt_rand(1, 100) <= 40) { return; } shuffle($tags); $postTags = [$tags[0]]; if (mt_rand(1, 100) <= 40) { $postTags[] = $tags[1]; } $post->syncTags($postTags); }); }
/** * Seed the tags table */ public function run() { Tag::truncate(); factory(Tag::class, 5)->create(); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { $tag = Tag::findOrFail($id); $tag->delete(); return redirect('/admin/tag')->withSuccess("The '{$tag->tag}' tag has been deleted."); }