我在PostgreSQL上使用了Adonis,并且尝试实现一种搜索,用户可以使用title
我的代码结构如下
<form action="{{ route('search') }}" method="GET" style="outline:none">
<input class="shadow appearance-none border-2 p-2 h-10" style="outline:none" type="text" name="q" placeholder="Search the forum" value="{{ request.input('q', '') }}">
</form>
和我的控制器一样
'use strict'
const Post = use('App/Models/Post')
const Database = use('Database')
class SearchController {
async index ({ view, request, response, params }) {
let posts = await Post.query()
.forIndex()
.whereRaw('lower(title) LIKE ?', params.searchString.toLowerCase())
.paginate(request.input('page', 1), 10)
return view.render('index', {
posts
})
}
}
module.exports = SearchController
但是,出现以下错误:
答案 0 :(得分:0)
以name='q'
的形式而不是name='searchString'
请参见https://adonisjs.com/docs/4.1/request#_methods以获取阿多尼斯的查询字符串参数