示例#1
0
 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'));
 }
示例#2
0
 /**
  * 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();
 }
示例#3
0
 /**
  * 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')];
 }
示例#4
0
 /**
  * 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()]);
 }
示例#5
0
 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);
     });
 }
示例#6
0
 /**
  * Seed the tags table
  */
 public function run()
 {
     Tag::truncate();
     factory(Tag::class, 5)->create();
 }
示例#7
0
 /**
  * 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.");
 }