如何使搜索系统在 laravel 中工作,它可以 运行 通过在数据库中存储为字符串的数组?
How to make search system work in laravel which can run through an array stored as string in database?
我想制作一个搜索框,用于 运行 搜索查询。我已将我的数据以这种形式存储在数据库 table 中
asdf,english class science 5,chapter 1
我希望使用, 来分隔不同的标签。
我需要搜索一下。因此,如果用户键入 chapter1,搜索查询应该能够在该行中找到 chapter1。目前搜索查询无法选择任何东西。我的代码如下:
$tag = $request->search;
$query = Comics::where('comics_tag','LIKE','%'.$tag.'%')
->get();
var_dump($query);die();
如何解决?
我建议不要将标签存储为字符串,而应在漫画和标签之间创建多对多关系,之后您将能够轻松管理它们:
https://laravel.com/docs/8.x/eloquent-relationships#many-to-many
那么一旦你与你的漫画建立了 tags()
关系:
$comics = Comics::whereHas('tags', function($query){
$query->where('name', 'like', "%" . request()->search . "%");
})->get();
至于命名约定,你的模型应该是单数的,所以它应该是:
Comic::class
而不是 Comics::class
我想制作一个搜索框,用于 运行 搜索查询。我已将我的数据以这种形式存储在数据库 table 中
asdf,english class science 5,chapter 1
我希望使用, 来分隔不同的标签。
我需要搜索一下。因此,如果用户键入 chapter1,搜索查询应该能够在该行中找到 chapter1。目前搜索查询无法选择任何东西。我的代码如下:
$tag = $request->search;
$query = Comics::where('comics_tag','LIKE','%'.$tag.'%')
->get();
var_dump($query);die();
如何解决?
我建议不要将标签存储为字符串,而应在漫画和标签之间创建多对多关系,之后您将能够轻松管理它们:
https://laravel.com/docs/8.x/eloquent-relationships#many-to-many
那么一旦你与你的漫画建立了 tags()
关系:
$comics = Comics::whereHas('tags', function($query){
$query->where('name', 'like', "%" . request()->search . "%");
})->get();
至于命名约定,你的模型应该是单数的,所以它应该是:
Comic::class
而不是 Comics::class