2015-09-24 10 views
5

Próbuję uzyskać niestandardowe etykiety w komunikatach o błędach. Moje dane wejściowe są zagnieżdżone i mogę je zweryfikować za pomocą notacji kropkowej (np. POLICY.HOLDER.NAME). Muszą być zagnieżdżone i wszystkie czapki pasują do struktury db, więc mogę łatwo je przypisać.Jak ustawić niestandardowe etykiety atrybutów dla zagnieżdżonych danych wejściowych w Laravel

Użycie tej samej notacji w 'attributes' => ['POLICY.HOLDER.NAME' => 'Policy Holder'] w resources/lang/en/validation.php nie przyniosło rezultatu.

Staram się tylko dopasować etykiety, które ustawiłem w formularzu.

app/HTTP/Regulatory/OfferController.php (tylko interesująca część)

public function postOffer(OfferRequest $request) { // 
    $post_data = $request->all(); 
    if (isset($post_data['POLICY'])) { 
     // code to get data from $_POST and assign to models 
    } 
} 

APP/HTTP/kupna/OfferRequest.php

<?php 
namespace App\Http\Requests; 

use App\Http\Requests\Request, Auth; 

class OfertaRequest extends Request 
{ 

    public function authorize() { 
     return Auth::check(); 
    } 

    public function rules() 
    { 
     return [ 
      'POLICY.HOLDER.NAME' => 'required', 
     ]; 
    } 

    public function forbiddenResponse() 
    { 
     return Response::make('Permission denied foo!', 403); 
    } 

} 

resources/lang/pl/walidacji. php

'attributes' => [ 
    'POLICY.HOLDER.NAME' => 'Some custom string here...', 
], 

Jak widać próbowałem dodać nazwę wejścia w atrybucie Custom Validation Attributes bez odświeżania ss. Oto komunikat o błędzie, który pojawia się przy opuszczaniu pustego pola wejściowego:

P o l y c y. h o l d e r. n Pole m e jest wymagane.

Uwaga na spacje. Też próbowałem, to nie działało.

+0

można dodać kod, co już próbowałem tak daleko? Na przykład. kontroler, widok, kod weryfikacyjny –

+0

@JamesFlight Dodałem kod –

+0

Ludzie na czacie PHP tutaj na SO powiedział, że może to być błąd laravel ze względu na wielkie nazwy wejściowe. Jeśli zmienię na małe litery, nie będzie już można wstawiać tych spacji i symbolu zastępczego. Niestety muszę mieć te wielkie litery, ponieważ atrybuty modelu i kolumny DB muszą ... Przychodzi z dalszej części łańcucha poleceń i nie mam nic do powiedzenia :)) –

Odpowiedz

6

jawnie zadeklarować ją jako zagnieżdżonych tablic:

'attributes' => [ 
    'POLICY' => [ 
     'HOLDER' => [ 
      'NAME' => 'Some custom string here...', 
     ] 
    ] 
], 
+1

Nigdy bym o tym nie pomyślał, działa zgodnie z oczekiwaniami. Wielkie dzięki! –

+0

Nie ma za co. Miło, że mogłem pomóc! –

Powiązane problemy