Please I have a form parameter as follows. I am try to build a dynamic form based on the schema below. In my database, I have a table column which is json. I am trying to guide against entering anyhow data except those ones defined in the form array of objects
formDefinition = [
{
"key": "name",
"value": "",
"datatype": "string"
},
{
"key": "sex",
"value": " ",
"datatype": "choice"
},
{
"key": "occupation",
"value": "",
"datatype": "string"
},
{
"key": "isRetired",
"value": ,
"datatype": "boolean"
}
]
Table: employee and field name is details which is a json type.
details = [{}]
When the user fills the form and on submission, it would look as follows.
details = [{"name": "something something"}, {"sex": "male"}, {"occupation": "something" }]
I need some of validation check to see if the details has the same keys as it is defined in the form otherwise it should throw error.
I haven't tried this code as I am not sure if it is possible. Just to illustrate what I am trying to achieve.
public function dataValidator($data)
{
foreach($data as $key => $value){
foreach(formDefinition as form){
if($key !== form['key']){
return "invalid"
}
}
}
}