Dav*_*vid 34 php validation laravel laravel-5.2
我有一个表格,用户可以填写出售他们的家.对于其中一个投注,用户必须选择天气,它将是"待售"或"出租".如果是For Sale,则会出现两个价格输入字段,如果是For Rent,那么其他一些价格输入字段将基于jQuery显示.
我的问题是我想要价格字段是必需的,但是例如如果我选择"出租",然后我提交我的表格,它会给我一个错误说"待售"输入字段的价格字段是必需的,即使它是在"出租"部分.
我知道Laravel中有一个required_if,但我不知道如何利用它.这是我对物业的要求.
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class PropertyRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'list_type' => 'required',
'sale_price' => 'required', // <-- maybe like: required_if:value
'rent_price' => 'required',
];
}
}
Run Code Online (Sandbox Code Playgroud)
/******************编辑***************************/
我现在拥有的:
public function rules()
{
return [
'list_type' => 'required',
'sale_price' => 'required_if:list_type:For Sale',
'rent_price' => 'required_if:list_type:For Rent',
}
Run Code Online (Sandbox Code Playgroud)
但是,当我提交表格时,我收到此错误:
Ach*_*dja 87
假设list_type是可供选择的选择框的名称(值:出售或出租)
用这种方式
"sale_price" => "required_if:list_type,==,selling"
Run Code Online (Sandbox Code Playgroud)
这是什么意思? :
只有当list_type的值等于时,才需要销售价格 selling
做同样的事 rent_price
编辑
public function rules()
{
return [
'list_type' => 'required',
'sale_price' => 'required_if:list_type,==,For Sale',
'rent_price' => 'required_if:list_type,==,For Rent'
}
Run Code Online (Sandbox Code Playgroud)
Pra*_*ahu 11
可能还有另一种情况,如果另一个字段不存在,则需要该要求,如果有人处于这种情况,您可以这样做
'your_field.*' => 'required_unless:dependency_field.*,
Run Code Online (Sandbox Code Playgroud)
Rob*_*Rob 10
您可以Illuminate\Validation\Rules\RequiredIf直接使用该规则。
注意:此规则在 Laravel 5.6 及更高版本中可用。
class SomeRequest extends FormRequest
{
...
public function rules()
{
return [
'sale_price' => new RequiredIf($this->list_type == 'For Sale'),
'rent_price' => new RequiredIf($this->list_type == 'For Rent'),
];
}
}
Run Code Online (Sandbox Code Playgroud)
而如果你需要使用多个规则,那么你可以传入一个数组。
public function rules()
{
return [
'sale_price' => [
new RequiredIf($this->list_type == 'For Sale'),
'string',
...
]
];
}
Run Code Online (Sandbox Code Playgroud)
您可以Illuminate\Validation\Rule在 Laravel中使用如下所示来构建验证器。
$validator = Validator::make( $request->input(), [
'list_type' => 'required',
'sale_price'=> Rule::requiredIf( function () use ($request){
return $request->input('list_type') == 'For Sale';
}),
'rent_price'=> Rule::requiredIf( function () use ($request){
return $request->input('list_type') == 'For Rent';
}),
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44222 次 |
| 最近记录: |