2016-12-15 6 views
0

Ich verwende die pluck method, um Werte abzurufen. Wie kann ich diese Werte übersetzen? (Diese Werte sind Optionen für eine Auswahl Eingabefeld)Wie übersetzt man Sammlungen in Laravel 5?

$relationtypes = Relationtype::pluck('name', 'id'); 

Mein relationtypes sind: Lieferanten, Kunden, usw.

+0

Übersetzen Sie sie in was? – Devon

+0

z.B. Wenn local auf 'nl' gesetzt ist, sollte es die Werte in Niederländisch mit der Funtion trans ('label.customer') übersetzen. – user3253002

Antwort

0

Ich fand auch eine bequemere Lösung:

$relationtypes = RelationType::pluck('name', 'id')->map(function ($item, $key) { 
    return trans('labels.' . $item . ''); 
}); 

diese Ansicht auf Ihren Pass, können Sie verwenden:

{!! Form::select('relationtypes[]', $relationtypes, 
    isset($relation) ? $relation->relationtypes->pluck('id')->toArray() : 0, ['class' => 'form-control']) !!} 

Hope this anderen Menschen hilft!

1

Ihre Controller-Methode kann wie folgt aussehen:

public function index() { 
    $relationtypes = Relationtype::pluck('name', 'id'); 

    // A better place for this might be a middleware 
    App::setlocale('your-locale'); 

    return view('relationtypes.index, compact('relationtypes')); 
} 

Ihrer Ansicht Iterierte über sie:

<select> 
    @foreach (types as type) 
    <option value="{{ type.id }}">{{ trans(type.name) }}</option> 
    @endforeach 
</select> 

Wenn Sie die Werte mit derübersetzen möchtenFunktion werden Sie in resources\lang\<locale>\<file>.php

Zum Beispiel vorher die Werte haben müssen, können Bild die Werte aus Ihrer Datenbank sind:

| id | name  | 
|----|------------| 
| 1 | slug-one | 
| 2 | slug-two | 
| 3 | slug-three | 

Dann in resources\lang\nl\slugs.php

return [ 
    'slug-one' => 'whatever translation for slug-on in nl', 
    // ... 
]; 

Dieser Ansatz ist gut für nicht dynamische Werte, wenn Ihre Werte dynamisch sind, muss die Übersetzung wahrscheinlich in einem db-Feld wie: name_nl, name_en vielleicht sein?

Aber es gibt schon viele Pakete für dieses Problem.