按标签搜索帖子
P粉323050780
P粉323050780 2024-04-03 22:38:54
[PHP讨论组]

我需要按标签显示帖子。我的解决方案适用于单个标签,如下所示:

路线:

Route::get('/posts',
   [PostController::class, 'index'])->middleware('auth');

后模型过滤器:

public function scopeFilter($query, array $filters)
{
    if ($filters['tag'] ?? false) {
        $tagId = Tag::where('name', $filters['tag'])->first()->id;
        $query->whereHas('tags', function($q) use ($tagId) {
                $q->where('tag_id', $tagId);
        });
    }
}

PostController 的方法索引:

public function index()
{
    return view('posts', [
        'posts' => Post::latest()->filter(request(['tag']))->get()
    ]);
}

此代码适用于如下网址:“http://127.0.0.1:8000/posts/?tag=test”。但我需要找到一种方法来搜索具有更多标签的帖子,例如我想查找带有“test”和“unit”标签的帖子。为此,我想使用如下网址:“http://127.0.0.1:8000/posts/?tag=test&unit”。我卡住了,因为我认为“request(['tag'])”将返回“test&unit”,但它只返回“test”。是否有可能以某种方式从此请求中获取“unit”标签?

P粉323050780
P粉323050780

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号