web-dev-qa-db-ja.com

required_if Laravel 5検証

ユーザーが自宅を売るために記入できるフォームがあります。そして、入力の1つについて、ユーザーは「販売」または「賃貸」の天気を選択する必要があります。 For Saleの場合、2つの価格入力フィールドが表示され、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',
    }

しかし、フォームを送信するとこのエラーが発生します。

My Error

31
David

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'
}
77
Achraf Khouadja