2017-05-03 8 views
1

だから私は状態のドロップダウンを使用して多くの形態がある - 素晴らしい作品これはこれを見つけた: - 私はどこかにその状態配列を入れて、ブレードに含めない方法Laravel再利用可能な配列?

    {!! Form::select('state',array(
'AL'=>'Alabama', 
'AK'=>'Alaska', 
'AZ'=>'Arizona', 
'AR'=>'Arkansas', 
'CA'=>'California', 
'CO'=>'Colorado', 
'CT'=>'Connecticut', 
'DE'=>'Delaware', 
'DC'=>'District of Columbia', 
'FL'=>'Florida', 
'GA'=>'Georgia', 
'HI'=>'Hawaii', 
'ID'=>'Idaho', 
'IL'=>'Illinois', 
'IN'=>'Indiana', 
'IA'=>'Iowa', 
'KS'=>'Kansas', 
'KY'=>'Kentucky', 
'LA'=>'Louisiana', 
'ME'=>'Maine', 
'MD'=>'Maryland', 
'MA'=>'Massachusetts', 
'MI'=>'Michigan', 
'MN'=>'Minnesota', 
'MS'=>'Mississippi', 
'MO'=>'Missouri', 
'MT'=>'Montana', 
'NE'=>'Nebraska', 
'NV'=>'Nevada', 
'NH'=>'New Hampshire', 
'NJ'=>'New Jersey', 
'NM'=>'New Mexico', 
'NY'=>'New York', 
'NC'=>'North Carolina', 
'ND'=>'North Dakota', 
'OH'=>'Ohio', 
'OK'=>'Oklahoma', 
'OR'=>'Oregon', 
'PA'=>'Pennsylvania', 
'RI'=>'Rhode Island', 
'SC'=>'South Carolina', 
'SD'=>'South Dakota', 
'TN'=>'Tennessee', 
'TX'=>'Texas', 
'UT'=>'Utah', 
'VT'=>'Vermont', 
'VA'=>'Virginia', 
'WA'=>'Washington', 
'WV'=>'West Virginia', 
'WI'=>'Wisconsin', 
'WY'=>'Wyoming', 
) , 
Input::old('state'), 
array(
'class'  => 'zip-lookup-field-state-short' 
)) 
!!} 

をしかし、これはサイト全体にいくつかの形式で表示されます見る?私は配列$ states = 'Al' => 'Alabama'などに入れてみましたが、@includeを使用していますが、それはうまくいかないようです。 configで何かを試しましたが、そこにはサイコロはありません。たぶん私は間違って探していますが、私は...これを見つけることができないよう

SO言っているこの質問:Laravel: Where to store global arrays data and constants?が同じである - しかし、それらsoutionsのいずれも選択ボックスのために働いていません...

+1

のhttp://stackoverflow.com/q/26854030/5045201 –

+0

可能な重複の可能性のある重複[Laravel:グローバル配列データおよび定数を格納する(http://stackoverflow.com/questions/26854030/グローバルアレイのデータと定数) –

答えて

0

私はこれらのタイプのもののために私自身のヘルパーファイルを持っているのが好きです。

app 
| -- helpers.php 

はその後composer.jsonfiles:ブロックを見つけ、これを追加します。そして、あなたがそこに

if (!function_exists('us_states')) { 
    function us_states() { 
     return [ 
      'AL'=>'Alabama', 
      'AK'=>'Alaska', 
      'AZ'=>'Arizona', 
      'AR'=>'Arkansas', 
      'CA'=>'California', 
      'CO'=>'Colorado', 
      'CT'=>'Connecticut', 
      'DE'=>'Delaware', 
      'DC'=>'District of Columbia', 
      'FL'=>'Florida', 
      'GA'=>'Georgia', 
      'HI'=>'Hawaii', 
      'ID'=>'Idaho', 
      'IL'=>'Illinois', 
      'IN'=>'Indiana', 
      'IA'=>'Iowa', 
      'KS'=>'Kansas', 
      'KY'=>'Kentucky', 
      'LA'=>'Louisiana', 
      'ME'=>'Maine', 
      'MD'=>'Maryland', 
      'MA'=>'Massachusetts', 
      'MI'=>'Michigan', 
      'MN'=>'Minnesota', 
      'MS'=>'Mississippi', 
      'MO'=>'Missouri', 
      'MT'=>'Montana', 
      'NE'=>'Nebraska', 
      'NV'=>'Nevada', 
      'NH'=>'New Hampshire', 
      'NJ'=>'New Jersey', 
      'NM'=>'New Mexico', 
      'NY'=>'New York', 
      'NC'=>'North Carolina', 
      'ND'=>'North Dakota', 
      'OH'=>'Ohio', 
      'OK'=>'Oklahoma', 
      'OR'=>'Oregon', 
      'PA'=>'Pennsylvania', 
      'RI'=>'Rhode Island', 
      'SC'=>'South Carolina', 
      'SD'=>'South Dakota', 
      'TN'=>'Tennessee', 
      'TX'=>'Texas', 
      'UT'=>'Utah', 
      'VT'=>'Vermont', 
      'VA'=>'Virginia', 
      'WA'=>'Washington', 
      'WV'=>'West Virginia', 
      'WI'=>'Wisconsin', 
      'WY'=>'Wyoming', 
     ]; 
    } 
} 

で状態配列を置くことができます

['app/helpers.php'] 

その後、あなたはus_states()を呼び出すことができます。

エラーが発生した場合は、php artisan optimizeまたはcomposer dump-autoloadを必ずご確認ください。

+0

うまく簡単に実装できました。ありがとう。 – DrewM

+0

'helpers'ファイルを使うことは、いつも私のコード臭です。 [View Composer](https://laravel.com/docs/5.4/views#view-composers)を使う方がずっと良いでしょう。 – jfadich

0

キー/値テーブルに入れて、データベース編集を使用してハードコーディングしないでいつでも編集できるようにします。ステート名の異なる国でアプリケーションが米国外で動作する必要がある場合はどうなりますか?

このような何か:https://github.com/delatbabel/keylists

キー機能はこの1つである:Keyvalue::getKeyvaluesByKeyType()

例えばKeyvalue::getKeyvaluesByKeyType('usa_states')

関連する問題