バージョン選択

フォーラム

メニュー

オンライン状況

79 人のユーザが現在オンラインです。 (54 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 79
もっと...

サイト内検索

質問 > フロント機能 > お問い合わせ機能追加

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
jacker
投稿日時: 2019/11/29 17:25
対応状況: −−−
新米
登録日: 2019/7/10
居住地:
投稿: 10
お問い合わせ機能追加
こんにちは

Symfony初心者です。

eccube4.0.3でお問合せで画像を投稿してもらうために
下記のコードを追加しました。
お問い合わせは、入力→確認→完了という流れですが。
確認で一時的に画像をtempに作成して
オリジナルファイル名を表示させて(できればアップした画像を表示)、

完了画面で正規フォルダーにコピーして、一時ファイルを削除といった感じにしたいのですが。
そのために完了画面までhiddenでオリジナルファイル名を渡したいです。
どうしてもconfirm.twigでオリジナルファイル名を表示させるところでつまずいています。
ContactController.phpで{{ form.img.vars.data }}の値をかえることができるのでしょうか?

confirm.twigで{{ form.img.vars.data }}を使うとテンポラリファイル名らしきが表示され
オリジナルファイル名を表示できません。。{{ form.img.vars.name }}はinput name=の値でした。

form.img.vars.data.UploadedFile.originalNameはエラーになってします。


追加したコード
■src\Eccube\Controller\ContactController.php

case 'confirm':

$form = $builder->getForm();
$form->handleRequest($request);
//下記を追加
$img_file = $form->get('img')->getData();
$img = "";
if ($img_file) {
$img_filename = $img_file->getClientOriginalName();
$img_file->move($this->eccubeConfig['eccube_save_image_dir'] , $img_filename);
}

■src\Eccube\Form\Type\Front\ContactType.php

->add('img', FileType::class, [
'multiple' => false,
'required' => false,
'mapped' => true,
'constraints' => [
new File([
'maxSize' => '5024k',
'mimeTypes' => [
'image/jpeg',
'image/png',
],
'mimeTypesMessage' => 'jpg or pngのみ登録可能',
])
],
])

■src\Eccube\Resource\template\default\Contact\index.twig

enctype="multipart/form-data"を追加

<form method="post" action="{{ url('ideaform') }}" class="h-adr" novalidate enctype="multipart/form-data">

form内に追加
<dl>
<dt>
{{ form_label(form.img, '写真', { 'label_attr': { 'class': 'ec-label' }}) }}
</dt>
<dd>
<div class="ec-input{{ has_errors(form.img) ? ' error' }}">
{{ form_widget(form.img) }}
{{ form_errors(form.img) }}
</div>
</dd>
</dl>


■src\Eccube\Resource\template\default\Contact\confirm.twig

form内に追加
<dl>
<dt>
{{ form_label(form.img, '写真', {'label_attr': {'class': 'ec-label'}}) }}
</dt>
<dd>
{{ form.img.vars.data }}
{{ form_widget(form.img, { type : 'hidden' }) }}
</dd>
</dl>
jacker
投稿日時: 2019/12/2 16:55
対応状況: −−−
新米
登録日: 2019/7/10
居住地:
投稿: 10
Re: お問い合わせ機能追加
自己レスです。

とりあえず。下記を追記してなんとか対応しました。
おさわがせいたしました・・・

■src\Eccube\Controller\ContactController.php

return $this->render('Contact/confirm.twig', [
'form' => $form->createView(),
'img_filename' => $img_filename,
]);

■src\Eccube\Resource\template\default\Contact\confirm.twig
<img src={{img_filename}}>
{{ form_widget(form.img, { type : 'hidden', value: img_filename}) }}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

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

統計情報

総メンバー数は54,403名です
総投稿数は94,215件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2015
4
468
1918
5
yuh
1610
6
umebius
1414
7
red
1376
8
h_tanaka
940
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
781
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 437


ネットショップの壺

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

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