2016-12-15 3 views
0

Я использую pluck method для получения значений. Как я могу перевести эти значения? (Эти значения опции для поля ввода выбора)Как перевести коллекции в Laravel 5?

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

Мои relationtypes являются: поставщик, клиент и т.д.

+0

Перевести их во что? – Devon

+0

, например. когда local установлен в 'nl', он должен перевести значения в голландском языке с помощью funtion trans ('label.customer') – user3253002

ответ

0

Я также нашел более удобное решение:

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

Passing это на ваш взгляд, вы можете использовать:

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

Надеется, что это поможет другим людям!

1

Ваш метод управления может выглядеть следующим образом:

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')); 
} 

На ваш взгляд итерация над ними:

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

Если вы хотите перевести значения, используя trans функция вам нужно иметь заранее значения в resources\lang\<locale>\<file>.php

Например, позволяет изображения значения из базы данных являются:

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

Тогда в resources\lang\nl\slugs.php

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

Этот подход хорош для не динамических значений, если ваши значения являются динамическими, перевод, вероятно, должен быть в каком-то поле db, например: name_nl, name_en возможно?

Но есть много пакетов для этой проблемы.