Подтвердить что ты не робот

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',
    }

Но я получаю эту ошибку, когда я отправляю форму:

Моя ошибка

4b9b3361

Ответ 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.*,