过滤标签。检查标记是否在数据库字符串中。 Laravel

时间:2015-10-22 13:38:24

标签: php database laravel

我正在寻找一个查询来检查我的$ tag-variable(一个字符串)是否是我通过输入字段放入数据库的字符串的一部分。用户可以通过用逗号分隔文章来为其添加标签。所有工作和用户都可以转到文章/ {tag}网址,但我无法显示具有该特定标记的所有文章。

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

这是我的控制器代码:

     public function getTag($tag)
{

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


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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这里正确的解决方案是:

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

感谢lamzozo!