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()代码>在您的请求类中