我在验证时遇到问题,以防止用户选择父元素,例如:
如果没有孩子,用户可以选择顶级选项,例如他们可以选择选项1和选项3,但他们无法选择选项,因为他们需要选择其中一个子选项。
数据库结构是:
id,parent_id,name
如果选项有父项,则parent_id是父项的id(如果不是,则为null)。
我目前正在验证是否检查数据库中是否存在该选项,但这显然不会阻止在有子级时选择顶级选项。
有什么建议吗?
答案 0 :(得分:0)
您的意思是阻止选择中的父项吗?
您可以在模型中创建children
函数,这是一个hasMany关系。如果计数高于0,则您可以选择项目。
或者您可以使用baum(https://github.com/etrepat/baum)检查该项目是否为"离开"(没有孩子的项目)。
可以使用自定义验证规则(https://laravel.com/docs/5.4/validation#custom-validation-rules)完成输入验证。 只需获取输入,检查是否有子项并返回true或false。