繁体   English   中英

laravel 5.1使用foreach进行表单验证

[英]laravel 5.1 form validation with foreach

在我的应用程序中,管理员可以添加categoriessubcategories 每个category/subcategory都有一个idnameslug 然后,用户可以添加article并选择是否要向该用户添加category和/或subcategory

这是通过看起来像这样的输入表单完成的

O - Add category 1 subcategories
O - Add category 2 subcategories

其中O是复选框。 单击O - add category x subcategories将打开以下子类别列表:

O - Add category 1 subcategories
 ----O - 1st subcat
 ----O - 2nd subcat
 ----O - 3rd subcat
O - Add category 2 subcategories
 ----O - 1st subcat
 ----O - 2nd subcat
 ----O - 3rd subcat

输入ID分别为category1slug[subcategory1slug]category1slug[subcategory2slug]等。 它们以foreach循环的形式呈现为

foreach ( $categories as $category) { input field }

现在,我要验证这些条目,如下所示。 如果选择O - Add category 1 subcategories字段,则我希望至少选择一个子类别。 我完成的自定义验证在这里:

Laravel 5.1,嵌套验证

但是,我不知道如何将其应用于所有类别。 我想获得如下验证:

'category1slug' => 'required_with_one_of:category1slug.subcategory1slug,category1slug.subcategory2slug,category1slug.subcategory3slug',
'category2slug' => 'required_with_one_of:category2slug.subcategory3slug,category2slug.subcategory4slug,category2slug.subcategory5slug',
'category3slug' => 'required_with_one_of:category3slug.subcategory6slug,category3slug.subcategory7slug,category3slug.subcategory8slug',

但是我不想每次都手动添加它们,因为数据已经在数据库中。 另外,如果我必须手动添加它们,则每次管理员添加新类别或子类别时,或者当他更改子类别/类别关系时,我都必须下降到routes.php

Request文件中有

public function rules()
{ 
  return [];
}

返回数组。 返回数组为:

public function rules()
{ 
  $therulesarray = [];

  foreach ( $categories as $category) { 
    //desired logic here
    $therulesarray['attribute'] = 'rulestoapply'; //this will add new element in $therulesarray that our function rules() returns;
  }
  return $therulesarray;
}

一些更多信息: http : //ericlbarnes.com/laravel-array-validation/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM