2016-07-14 11 views
0

ローカライズ文字列の逆を取得する(https://laravel.com/docs/5.0/localizationはLaravel私は自分のアプリケーションにLaravelローカライズを使用してい

は、以下の文字列しているI:私はサブスクリプションを作成していたとき、それはすべての良い今

'plan_month' => 'usd-plan-month', 
'plan_yeary' => 'usd-plan-year', 

ですストライプSA以来、私は多分、ユーザの計画を変更するには、サブスクリプションをretreieveしたいとき、私は逆を取得する必要があります

{{ trans('subscription.plan_month') }} 

しかし..:、私はそれにアクセスすることができますデータベースのプランIDを調べて、それに関する追加のデータを取得する必要があります。

私の質問には、プランIDに給餌できるlaravelまたはPHP(あるいはおそらくハック)の関数がありますか? 'usd-plan-month'など)、インデックス名 'plan_month'を返しますか?

答えて

0

サブスクリプションにとって重要なデータであるため、langファイルからこれを取得することはお勧めできません。定数や何かに保存する必要がありますので、変更しないようにすることができます(また、langファイルは変更される可能性があります)。また、同じ値を持ち、異なるキーを持つ2つのlang項目がある場合は、問題になります。間違ったキーを取得すると、サブスクリプションプロセスのバグが発生します。

これにこだわりたい場合は、ハックがあります。あなたは

$lang = Lang::get('FILE_NAME'); 

を使用してLANGの配列を取得することができ、ファイル(または別のlangはのためにのみファイルをしているあなたが複数のアレイにネストされた翻訳を持っている場合、それは良いだろう、あなたは全体のLANGを反復処理する必要はありません。サブスクリプションテキスト)。あなたはLANGファイル内の配列にアクセスしたい場合は、file_nameはファイルの名前です

$lang = Lang::get('FILE_NAME.ARR_KEY'); 

を持っているでしょうし、ARR_KEYは、アクセスしたい配列のキーです。

次に、array_flipを使用して配列のキーを値に置き換えることができます(複数の項目にアクセスする必要がある場合はより良いでしょう)。array_searchを使用してキーの値を取得します1つのアイテムを探す)。

私はまだlangファイルの代わりにこの目的のために定数を使うことを検討すべきだと思います。言語ファイルはコンテンツのみを表示するために使用され、アプリケーションロジックと混在してはいけません。

関連する問題