Laravel验证父/子用户输入

时间:2017-03-10 08:54:26

标签: php laravel

我在验证时遇到问题,以防止用户选择父元素,例如:

  • 选项1
  • 选项2
    • 子选项1
    • 子选项2
    • 子选项3
  • 选项3

如果没有孩子,用户可以选择顶级选项,例如他们可以选择选项1和选项3,但他们无法选择选项,因为他们需要选择其中一个子选项。

数据库结构是:

id,parent_id,name

如果选项有父项,则parent_id是父项的id(如果不是,则为null)。

我目前正在验证是否检查数据库中是否存在该选项,但这显然不会阻止在有子级时选择顶级选项。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的意思是阻止选择中的父项吗?

您可以在模型中创建children函数,这是一个hasMany关系。如果计数高于0,则您可以选择项目。

或者您可以使用baum(https://github.com/etrepat/baum)检查该项目是否为"离开"(没有孩子的项目)。

可以使用自定义验证规则(https://laravel.com/docs/5.4/validation#custom-validation-rules)完成输入验证。 只需获取输入,检查是否有子项并返回true或false。