필수_라벨 5 유효성 검사인 경우
저는 사용자가 집을 팔 때 작성할 수 있는 양식을 가지고 있습니다.또한 입력 중 하나에 대해 사용자는 날씨를 "판매용" 또는 "임대용"으로 선택해야 합니다.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',
];
}
}
편집********************/
내가 지금 가지고 있는 것:
public function rules()
{
return [
'list_type' => 'required',
'sale_price' => 'required_if:list_type:For Sale',
'rent_price' => 'required_if:list_type:For Rent',
}
그러나 양식을 제출할 때 다음 오류가 발생합니다.
list_type이 선택할 선택 상자의 이름이라고 가정합니다(값: 판매 또는 임대).
이런 식으로 사용하세요.
"sale_price" => "required_if:list_type,==,selling"
이것은 무엇을 의미합니까?:
판매 가격은 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'
}
당신은 사용할 수 있습니다.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'),
];
}
}
여러 규칙을 사용해야 하는 경우 배열을 전달할 수 있습니다.
public function rules()
{
return [
'sale_price' => [
new RequiredIf($this->list_type == 'For Sale'),
'string',
...
]
];
}
다른 필드가 없는 경우 요구 사항이 필요한 다른 상황이 발생할 수 있습니다. 이 상황에 있는 사람은 다음을 수행할 수 있습니다.
'your_field.*' => 'required_unless:dependency_field.*,
아래와 같이 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';
}),
]);
나는 이 필수 항목을 사용하여 두 개의 값을 확인해야 하며 다음과 같이 썼습니다.
return [
'change_status' => 'required',
'forward_to' => 'required_if:change_status,2,3'
];
언급URL : https://stackoverflow.com/questions/37777265/required-if-laravel-5-validation
'programing' 카테고리의 다른 글
jQuery UI 탭 - 현재 선택한 탭 인덱스를 가져오는 방법 (0) | 2023.08.06 |
---|---|
Python은 적절한 시간대에 현재 시간을 얻습니다. (0) | 2023.08.06 |
비트 열에 SUM을 사용하려면 어떻게 해야 합니까? (0) | 2023.08.06 |
MySQL 테이블에 대해 '너무 많은' 행은 몇 개입니까? (0) | 2023.08.06 |
Javascript 변수를 PHP POST에 전달 (0) | 2023.08.01 |