web-dev-qa-db-fra.com

required_if Laravel 5 validation

J'ai un formulaire qu'un utilisateur peut remplir pour vendre sa maison. Et pour l’une des entrées, l’utilisateur doit sélectionner la météo: "à vendre" ou "à louer". Si c'est à vendre, deux champs de saisie de prix apparaîtront, et s'il s'agit à louer, un autre champ de saisie de prix apparaîtra basé sur jQuery.

Mon problème est que je veux que les champs de prix soient obligatoires, MAIS par exemple si je sélectionne "À louer", puis que je soumets mon formulaire, cela me donnera une erreur en disant les champs de prix pour les champs de saisie "À vendre" sont obligatoires, même s’il se trouve dans la section "À louer".

Je sais qu'il existe un required_if à Laravel, mais je ne sais tout simplement pas comment l'utiliser. Voici mes demandes pour une propriété.

<?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',   
        ];
    }
}

/****************** MODIFIER ***************************/

Ce que j'ai maintenant:

 public function rules()
    {
        return [
            'list_type'  => 'required',
            'sale_price' => 'required_if:list_type:For Sale',
            'rent_price' => 'required_if:list_type:For Rent',
    }

Mais je reçois cette erreur lorsque je soumets le formulaire:

My Error

31
David

en supposant que type_liste est le nom de la zone de sélection parmi laquelle choisir (valeurs: vente ou location)

l'utiliser de cette façon

"sale_price" => "required_if:list_type,==,selling"

qu'est-ce que cela signifie? :

le prix de vente n'est requis que si la valeur de list_type est égale à selling

faire de même pour rent_price

modifier

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