完善了tag系统

之前漏了个return。。。

Posted on September 6, 2016 in Laravel

这里涉及到教程的一个坑。。。

暂时只放一下代码


  • 原代码
public function tagLinks($base = '/blog?tag=%TAG%')
{
    $tags = $this->tags()->lists('tag');
    $return = [];
    foreach ($tags as $tag) {
      $url = str_replace('%TAG%', urlencode($tag), $base);
      $return[] = '<a href="'.$url.'">'.e($tag).'</a>';
    }
    return $return;
}

  • 现在的代码
public function tagLinks($base = '/blog?tag=%TAG%')
    {
        $tags = $this->tags()->get();
        $return = [];
        foreach ($tags as $tag) {
            $url = str_replace('%TAG%', urlencode($tag->tag), $base);
            $return[] = '<a href="' . $url . '"><span class="label label-info">' . e($tag->tag) . '</span></a>';
        }

        return $return;
    }

问题主要出在lists那里,原代码的框架是laravel5.1,可能lists取出的数据还是string,但是之后lists被pluck取代,而且得到的是个collect对象,所以导致了tag失效。

我给tag加了个label,去掉了逗号,不过还是有点丑,后面有时间再改成Github的issue的形式吧。