[Question] Creating rules on vine "VineArray"
Package version
"@adonisjs/core": "^6.2.2", "@vinejs/vine": "^1.7.0"
Describe the bug
Hey, I have an array that I want to make conditional depending on whether or not an object is present in my database. On the doc it's explained for VineString, but I can't figure out how to do it with VineArray. Does anyone have any ideas?
Its same for all the schema classes, be it VineString, VineObject, or VineArray.
Its same for all the schema classes, be it
VineString,VineObject, orVineArray.
Here's the problem I'm having with VineArray:
@thetutlage I can't seem to add a custom rule to the Array type. When I copy the doc for the unique() rule, and remove the string checks, it isn't executed, but it is on a string() entry. None of my rules are executed on array(), is this normal?
Hello, can you please share a reproduction repo with for the same and I will try to debug and see if I can provide some helpful info
Hello, can you please share a reproduction repo with for the same and I will try to debug and see if I can provide some helpful info
You can find a repo here: https://github.com/shankiflang/repo-repro. As far as I can see, the implicit : true doesn't work.
If I set the data for a message to:
{
"postId": 1
}
the isRequiredIfPostPublishedRule() method is not called. In contrast, if I put :
{
"postId": 1,
"config": [
{
"hi": "foo"
}
]
}
The method is called.
Thanks for the repro. I will look into it once I get some time and see if rules on an array respect the implict flag or not.
Hello @thetutlage , I'm facing the same error with VineObject.
I see the source of the issue lies within the compiler. The compiler won't execute rules for an Array or object when the original value is not an Array or Object.
I am not sure if changing this behavior is going to be super helpful, because that might make the codebase a bit more complicated.
So for now, I will pass on this feature. However, if you think that rules are not executed even when you pass an array or object, then I am happy to look into it 👍
Added support for it in https://github.com/vinejs/vine/commit/890228e6b76c30ce39dc281f52c5e5014d62c183