我正在尝试编写搜索功能,这不仅允许我按问题类别搜索,还可以搜索其内容。我正在使用PostgreSQL及其ts_vector
功能来处理内容。对于类别,我想使用Laravel的Eloquent和Query Builder。
内容搜索完全正常,但我无法弄清楚如何将显示的问题限制为具有这些类别的问题。这就是我到目前为止所做的:
$questions = Question::search($query_string)->paginate(NUM_PER_PAGE);
我还有一个字符串数组,它们是类别名称($tag_names
)。从模式中可以看出,每个名称都是unique
。
这是架构:
CREATE TABLE questions (
id BIGINT PRIMARY KEY REFERENCES commentables(id) ON DELETE CASCADE,
title TEXT NOT NULL,
correct_answer BIGINT UNIQUE,
search tsvector
);
CREATE TABLE categories (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
description TEXT,
num_posts INTEGER DEFAULT 0 NOT NULL
);
CREATE TABLE questions_categories (
question_id BIGINT REFERENCES questions(id) ON DELETE CASCADE,
category_id INTEGER REFERENCES categories(id) ON DELETE CASCADE,
PRIMARY KEY (question_id, category_id)
);
我为每个数据库表创建了模型类,因此您可以通过Question
,Category
和QuestionsCategory
来引用它们。
答案 0 :(得分:1)
在<a href="{{ route('login') }}"> {{ __('Admin Login') }} </a>
模型中定义<a href="{{ route('student.login') }}"> Student Login </a>
关系:
categories
然后扩展您的查询:
Question