node.js - 如何从表单中获取值以在 AdonisJs 中进行查询?
问题描述
我正在编写一个搜索表单以从数据库中获取一些数据,我不知道我在做什么错。页面只是刷新,没有任何反应。
1-我有一个输入名为“术语”的表单
2- 我的路线:Route.get('/telefone', 'TelefoneController.show')
我的控制器
async show ({ params, request, response, view }) {
const term = request.input('term');
const nome = await Telefone.query().where('atendente', 'LIKE',
'%'+term+'%').fetch()
console.log(nome);
return view.render('telefone', {
nome: nome,
})
}
我的 HTML
<div class="container d-flex">
<form action="{{ route('/telefone')}}" method="get" class="col-sm-8">
<div class="form-group">
<label for="campotel">Buscar Nome</label>
<input type="text" name="term" class="form-control" id="campotel" placeholder="Digite o nome do funcionário">
</div>
<button type="submit" class="btn btn-success float-right">Buscar</button>
</form>
</div>
DB STRUCTURE
class TelefoneSchema extends Schema {
up () {
this.create('telefones', (table) => {
table.increments()
table.string('ramal')
table.string('voip')
table.string('atendente')
table.integer('id_departamento')
.unsigned()
.references('id')
.inTable('departamentos')
.onUpdate('CASCADE')
.onDelete('CASCADE')
table.integer('id_polo_telefone')
.unsigned()
.references('id')
.inTable('polos')
.onUpdate('CASCADE')
.onDelete('CASCADE')
table.timestamps()
})
}
down () {
this.drop('telefones')
}
}
module.exports = TelefoneSchema
page just refresh and nothing happens
解决方案
我尝试站在我这边,但无法重现此案。
但我有一些信息可能会对您有所帮助:
当查询没有返回值时,结果是
null
. -> 确保你的数据库有值我的测试代码(工作正常):
我的控制器:
'use strict'
const Telefone = use('App/Models/Telefone')
class TelefoneController {
async show ({ params, request, response, view }) {
const term = request.input('term')
console.log(term)
const result = await Telefone.query().where('atendente', 'like',
'%'+term+'%').fetch()
const nome = result.toJSON()
console.log(nome) // Return JSON array
return view.render('welcome', {
nome: nome,
})
}
}
module.exports = TelefoneController
我的架构(我不使用您的所有数据):
class TelefoneSchema extends Schema {
up () {
this.create('telefones', (table) => {
table.increments()
table.string('ramal')
table.string('voip')
table.string('atendente')
table.timestamps()
})
}
down () {
this.drop('telefones')
}
}
我的观点 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Hello Adonis</title>
</head>
<body>
<h1>Ramal : {{ nome[0].ramal }}</h1>
<div class="container d-flex">
<form action="{{ route('/telefone')}}" method="get" class="col-sm-8">
<div class="form-group">
<label for="campotel">Buscar Nome</label>
<input type="text" name="term" class="form-control" id="campotel" placeholder="Digite o nome do funcionário">
</div>
<button type="submit" class="btn btn-success float-right">Buscar</button>
</form>
</div>
</body>
</html>
我希望它可以帮助你一点点。
推荐阅读
- python - 查看本地目录是否存在
- r - 随机抽样直到达到总和
- reactjs - 使用带有 Material-UI 输入的 react-text-mask 时呈现“轮廓”输入
- reactjs - 我有 nginx 运行,但它不服务于我的反应构建
- java - 是否有返回 Android 应用程序身份验证级别的 API/库
- python - ufunc 'subtract' 不包含具有签名匹配类型的循环(dtype('
dtype(' 我也尝试减去两个矩阵,首先我使用 np.substract 然后我只是使用'-'。矩阵减法的代码工作得很好,但是当我向我的函数输入相同的代码时,python 给出了这个错误
Traceback (most recent call last): File "
- c# - 使用属性的WEB API验证类
- python - 无法在小部件上添加 id - Kiy
- wordpress - 未连接(cURL 错误 7:无法连接到 my.elementor.com 端口 443:连接被拒绝) Wordpress - elementor
- android - Cordova BlinkID 阿联酋身份证扫描不返回姓名或号码