Required_if Проверка Laravel 5
У меня есть форма, которую пользователь может заполнить для продажи своего дома. И для одного из стажеров пользователь должен выбрать погоду, это будет "Продажа" или "Аренда". Если это продается, появятся два поля ввода цены, и если это будет арендная плата, тогда появится другое поле ввода цены, основанное на jQuery.
Моя проблема в том, что я хочу, чтобы поля цены требовались, НО, например, если я выбрал "В аренду", а затем отправлю свою форму, это даст мне ошибку, говоря, что поля цены для "For Sale" поля ввода необходимы, даже если они находятся в разделе "Аренда".
Я знаю, что в 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',
];
}
}
/****************** EDIT ***************************/
Что у меня сейчас:
public function rules()
{
return [
'list_type' => 'required',
'sale_price' => 'required_if:list_type:For Sale',
'rent_price' => 'required_if:list_type:For Rent',
}
Но я получаю эту ошибку, когда я отправляю форму:
![Моя ошибка]()
Ответы
Ответ 1
предполагая, что 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'
}
Ответ 2
Может быть другая ситуация, когда требование будет требоваться, если другое поле отсутствует, если кто-то находится в этой ситуации, вы можете выполнить
'your_field.*' => 'required_unless:dependency_field.*,