2016-06-12 37 views
10

Ho un modulo che un utente può compilare per vendere la propria casa. E per uno degli inserti, un utente deve selezionare il tempo sarà "In vendita" o "In affitto". Se è in vendita, appariranno due campi di inserimento del prezzo, e se è in affitto, un altro campo di inserimento del prezzo apparirà in base a jQuery.required_if Laravel 5 validation

Il mio problema è che voglio che i campi del prezzo siano richiesti, MA ad esempio se sto selezionando "In Affitto", e poi invio il mio modulo, mi darà un errore che dice i campi del prezzo per "Per Vendita "campi di input sono obbligatori, anche se è sotto la sezione" For Rent ".

So che c'è uno required_if in Laravel, ma non so come utilizzarlo. Ecco le mie richieste per una proprietà.

<?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 *********************** ****/

quello che ho adesso:

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

Ma ottengo questo errore quando inviare il modulo:

My Error

risposta

25

assumendo che LIST_TYPE è il nome della select scatola a c hoose da (valori: la vendita o l'affitto)

usarlo in questo modo

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

cosa significa questo? :

il prezzo di vendita è necessario solo se il valore di LIST_TYPE è pari a selling

fare lo stesso per rent_price

modificare

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

Come al mio posto, ho modificato sotto. – David

+0

controlla la mia modifica, hai fatto un errore prova ora, se questo non ha funzionato, aggiungi, ==, come questo 'sale_price" => "required_if: list_type, ==, vendendo" ' –

+1

La tua ** modifica ** sezione del tuo commento ha funzionato, grazie – David