2016-10-06 17 views
0

Laravel IoC Containerから選択ボックスにデータを取り込みたいとします。Laravel - アクセサを使用するとモデルバインディングが機能しません

のApp \のHttp \ユーティリティ\ BillingHelper.php

GitHub Logo http://i65.tinypic.com/2871i1.jpg

ビュー/請求/ create.blade.php

GitHub Logo http://i66.tinypic.com/2j4bjtw.jpg

ビュー/請求/編集.blade.php

GitHub Logo http://i65.tinypic.com/2wq4imd.png

テーブルを作成します。

GitHub Logo http://i63.tinypic.com/258t9uf.png

を今、値のかわりに、私はいくつかのフラグと通貨記号を表示します。

ミューテータを使用する必要がありますか?

GitHub Logo http://i63.tinypic.com/2hn411s.png

問題

私はミューテーターを使用する場合、私は編集ページを開いたとき、私はいつもBillingHelperから、代わりに選びだし1の選択された第1の値を参照してください。

GitHub Logo http://i63.tinypic.com/4g3wix.png GitHub Logo http://i63.tinypic.com/2ld7msi.png

任意のヘルプ?ありがとう。

答えて

0

私はそれがコメントでなければならないことを知っていますが、私は評判がありません。

ページを編集すると、Form :: selectでnullを$ client-> languageおよび$ client-> currencyに置き換えた場合はどうなりますか?

私はあなたがForm :: Modelで値を束縛することを知っています。しかし、試してみる価値がある。

+0

または、これを改善するには、nullの代わりにold( 'currency'、$ client-> currency)を追加します。 –

+0

ありがとう、マウロ、私はAccesorを使用してフラグとシンボルのコードを変更しても動作しません。どのようなアクセサリの代替ですか? :D ..またはそれを使用するより良い方法。 – confm

+0

アクセッサの代替ではありませんが、 データは静的であるか、DBクエリを実行して変更しようとしていますか?あなたはconfigフォルダに別のファイルを作成し、それをconfig( 'file_name.currency')として取得することができます。 通貨の名前が必要な場合:config( 'file_name.currency.eur') –

0

ミューテータを使用すると、マッチングはもう発生しません。あなたが返す値に応じて、一致する静的配列を使用する必要があります。 (フラグ)

また、データを保存するためのミューテータを作成して['it'、 'en'、 'lv']に再度シンプル化すると動作させることができます。最初のミューテータは2回目は機能しません。それでも、1回限りのテストを行うことはできます。

あなたのフォームは、実際の保存されたデータを取得し、あなたの$札:: LANG静的配列内の値と比較するために$ bill->言語を使用しているバインディング:なぜ

はこれがあります。一致するものが見つからない場合は、最初の値が常に選択されます。

法案の移行で通貨と言語フィールドの定義を指定できますか?

また、請求書DBから値を取得し、言語と通貨のためにここに貼り付けます。それらは、定義された静的セット内になければなりません。

関連する問題