Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 请求类:规则取决于元素的数量_Php_Laravel_Validation - Fatal编程技术网

Php 请求类:规则取决于元素的数量

Php 请求类:规则取决于元素的数量,php,laravel,validation,Php,Laravel,Validation,我正在使用请求类来验证表单,但我有一个问题。看看这个代码 public function rules() { return [ 'title' => 'required|string|between:6,50', 'category_id' => 'required|integer|between:1,10' ]; } 它工作正常,但类别的数量将发生变化。如果我在控制器的方法中使用验证方法,我可以解决我的问题: $count = Ca

我正在使用请求类来验证表单,但我有一个问题。看看这个代码

public function rules()
{
    return [
        'title' => 'required|string|between:6,50',
        'category_id' => 'required|integer|between:1,10'
    ];
}
它工作正常,但类别的数量将发生变化。如果我在控制器的方法中使用验证方法,我可以解决我的问题:

$count = Category::count();
$request->validate([
    'title' => 'required|string|between:6,50',
    'category_id' => 'required|integer|between:1,' . $count
]);

如何使用请求类解决问题?

您的验证目前没有多大意义,您正在根据数据库中可能存在或不存在的任意数字进行验证

我假设您只希望接受数据库中存在的类别ID,因此我将使用
exists
规则:

$request->validate([
'title'=>'必填|字符串|介于:6,50'之间,
'category_id'=>'required | integer |存在:categories,id'
]);

从:

存在:表、列
给定数据库表上必须存在验证中的字段


Exists规则的基本用法

“状态”=>“存在:状态”
如果未指定列选项,将使用字段名


指定自定义列名

“状态”=>“存在:状态,缩写”

您的验证目前没有多大意义,您正在根据数据库中可能存在或不存在的任意数字进行验证

我假设您只希望接受数据库中存在的类别ID,因此我将使用
exists
规则:

$request->validate([
'title'=>'必填|字符串|介于:6,50'之间,
'category_id'=>'required | integer |存在:categories,id'
]);

从:

存在:表、列
给定数据库表上必须存在验证中的字段


Exists规则的基本用法

“状态”=>“存在:状态”
如果未指定列选项,将使用字段名


指定自定义列名

“状态”=>“存在:状态,缩写”

我想你可以使用
$count=Category::count()在请求类中,我认为您可以使用
$count=Category::count()在您的请求类中