バージョン選択

フォーラム

メニュー

オンライン状況

50 人のユーザが現在オンラインです。 (35 人のユーザが フォーラム を参照しています。)
登録ユーザ: 3
ゲスト: 47
Runvast hebechan h_tanaka もっと...

サイト内検索

質問 > フロント機能 > $form->get('address')->get('pref')->setData()が効かない

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
betaplus
投稿日時: 2017/12/13 12:39
対応状況: −−−
新米
登録日: 2017/12/8
居住地:
投稿: 4
$form->get('address')->get('pref')->setData()が効かない
▼テンプレート
[EC-CUBE] 3.0.15
[サーバ] localhost
[OS] Windows10 64bit
[PHP] 7.1.11
[WEBサーバ]Apache/2.4.25 (Win32)

----------------------------------------

こんにちは、EC-CUBE3のフォーム周りで躓いているため
教えて頂けると幸いです。

ShoppingControllerのnonmemberの中で非会員フォームの初期値(都道府県)を設定しようとしています。
違うページから戻って来た時に「東京」をselectedにしたりしたいのです。

そこで、
$form->get('address')->get('pref')->setData($request->get('customer_pref'));
というようにsetDataを使っているのですが、反映されません。

他のフォームには$form->get('name')->get('name01')->setData($request->get('customer_name01'));などできちんと初期値が反映されます。


違う方法があったり、どこか原因があればご指摘お願いいたします。
minori
投稿日時: 2017/12/14 17:29
対応状況: −−−
常連
登録日: 2017/10/12
居住地:
投稿: 40
Re: $form->get('address')->get('pref')->setData()が効かない
都道府県にはエンティティをセットしてあげる必要があるので、
以下のようにすると初期値設定できると思います。

$Pref = $app['eccube.repository.master.pref']->find($request->get('customer_pref'));
$form->get('address')->get('pref')->setData($Pref);
betaplus
投稿日時: 2017/12/15 15:31
対応状況: 解決済
新米
登録日: 2017/12/8
居住地:
投稿: 4
Re: $form->get('address')->get('pref')->setData()が効かない
ご回答ありがとうございます!
まさにそれで動くようになりました。

prefの場合はsetDataする対象がエンティティなので
単なるStringだと反映されないのですね。

無事に解決しました。
本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は66,646名です
総投稿数は98,379件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2651
4
nanasess
2103
5
umebius
1753
6
yuh
1612
7
red
1424
8
h_tanaka
1044
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.