在数据库中我有一个名为resources的字段,其中我保留了用户的权限,格式为Json:
[
{
"rota":"reserva",
"sref":"oQueFazer",
"ordem":"1",
"recursos":[
"index",
"show",
"store",
"update"
],
"descricao":"Reservar",
"controller":"ReservasController"
},
{
"rota":"reserva",
"sref":"oQueFazer",
"ordem":"2",
"recursos":[
"index",
"show"
],
"descricao":"Reservas",
"controller":"ReservasController"
},
{
"rota":"usuario",
"sref":"oQueFazer",
"ordem":"3",
"recursos":[
"index",
"show"
],
"descricao":"Usuários",
"controller":"UsuariosController"
},
{
"rota":"feriado",
"sref":"home.feriado",
"ordem":"4",
"recursos":[
"index",
"show",
"store",
"update",
"destroy"
],
"descricao":"Feriados",
"controller":"FeriadosController"
},
{
"rota":"sala",
"sref":"home.sala",
"ordem":"5",
"recursos":[
"index",
"show"
],
"descricao":"Salas",
"controller":"SalasController"
}
]
当我将查询运行到下面时,它会让我正确地返回哪个用户拥有权限:
SELECT recursos from perfis
WHERE
JSON_CONTAINS(recursos, '{"controller": "FeriadosController"}');
几乎在那里,通过上面的选择,我得到了我正在寻找的记录行,问题是它向我显示了资源字段中的整个json集合。 (当然他会这样做,这就是我要求的)。
因此,为了给我带来某个控制器中用户所允许的权限,我在下面做了选择:
SELECT JSON_EXTRACT(recursos, '$[0].recursos') permite from perfis
WHERE
JSON_CONTAINS(recursos, '{"controller": "FeriadosController"}');
回报是:
["index", "show", "store", "update"]
也就是说,一切正常,它显示了用户对给定控制器的权限,问题是它显示了第一行'$[0].recursos'
的JSON集合的权限,但这不是我的意思我想,我想回来:
["index", "show", "store", "update", "destroy"]
用户对控制器HolidaysController
也就是说,我能够扫描控制器以在json中搜索,但是我无法显示被搜索的json部分,有人有解决方案,jpa经历了这个吗?
答案 0 :(得分:0)
一种选择是使用以下查询(根据需要调整):
<form (keyup.enter)="setTime()"><input type="number" [(ngModel)]="selectedTime" name="time" placeholder="enter mins" ngModel/></form>
请参阅db-fiddle。