对标签进行过滤.检查标签是否在数据库字符串中.Laravel


Filter on tag. Check if tag is in database string. Laravel

我正在寻找一个查询来检查我的$tag-variable(字符串)是否是我通过输入字段放入数据库的字符串的一部分。用户可以通过用逗号分隔来添加文章或给文章添加标签。这一切工作,用户可以去文章/{tag} url,但我不能显示所有的文章与特定的标签。

那么我需要做什么呢?我需要检查$tag是否是数据库中字符串的一部分(在"tags"列中)。我试过了,这是我的控制器。我真的不知道contains()函数是否有效。

这是我的控制器代码:
     public function getTag($tag)
{
    $articles = Article::where('tags',contains('tags', $tag))->get();

    return view("article.tagFilter")->with('articles',$articles);
}

正确的解决方案是:

    $articles = Article::where('tags', 'LIKE', '%'.$tag.'%')->get();

感谢lamzozo!

如果我理解正确,您在文章表中有一个tags varchar列(其中有逗号分隔的字符串),并且您想要搜索此

$articles = Article::where('tags', 'LIKE', "%$tag%")->get();