バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 必須項目を解除したい

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
a-zumi
投稿日時: 2017/4/20 16:38
対応状況: −−−
半人前
登録日: 2017/4/20
居住地:
投稿: 24
Re: 必須項目を解除したい
参考にされた記事を書いたものです。
すでに解決されましたでしょうか?


telの件ですが、もしかすると文字数制限に引っかかっているのかもしれません。

EC-CUBEの設定を確認したところ最低文字数が1となっていました。

こちらのページが参考になります。
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Form/Type/TelType.php


----------------
あずみ.net
http://a-zumi.net

umebius
投稿日時: 2017/4/6 19:58
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 必須項目を解除したい
これって上書きになるんですね。
$builder->add('tel', 'tel', array( 'required' => false ));

ちゃんと書いてありました。

引用:

/**
* Adds a new field to this group. A field must have a unique name within
* the group. Otherwise the existing field is overwritten.
*
* If you add a nested group, this group should also be represented in the
* object hierarchy.
*
* @param string|int|FormBuilderInterface $child
* @param string|FormTypeInterface $type
* @param array $options
*
* @return FormBuilderInterface The builder object
*/
public function add($child, $type = null, array $options = array());


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

lightning
投稿日時: 2017/4/6 2:03
対応状況: −−−
新米
登録日: 2017/3/12
居住地:
投稿: 10
Re: 必須項目を解除したい
情報ありがとうございます。

removeをしてみたのですが状況が変わらなかったので、
イベントのタイミングを疑ってみました。

(修正前)front.entry.index.initialize:
(修正後)front.shopping.nonmember.initialize:

にしてから、$builder->add にて変更することでエラーが無くなりました。
Passed Options required は false になっています。

しかしながら、telのみエラーが発生しています。
tel 及び tel01,tel02,tel03 いずれもrequired は false なのですが、
tel のところに「有効な値ではありません。」と表示されています。

removeしてaddしてみましたが同じく「有効な値ではありません」とでます。
$builder->remove('tel')->add('tel', 'tel', array( 'required' => false ));


あと少しというところなのですが、どうぞ宜しくお願いします。


umebius
投稿日時: 2017/4/5 21:06
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 必須項目を解除したい
上書きできません。
一度removeしてください。

$builder
->remove('tel')
->add('tel', 'tel', array( ...../* 好きなオプション */ ));


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

lightning
投稿日時: 2017/4/5 12:14
対応状況: −−−
新米
登録日: 2017/3/12
居住地:
投稿: 10
必須項目を解除したい
[EC-CUBE] 3.0.13 新規インストール
[レンタルサーバ] sakura
[OS] Apache/2.2.31
[PHP] 5.6.30
[データベース] SQLite version 3.8.10.2(テストサイトのため)
[WEBサーバ] FreeBSD 9.1-RELEASE-p24
[ブラウザ] safari 10.1
[導入プラグインの有無] 自作
[カスタマイズの有無] 新規登録画面
[現象] 必須項目を解除したい

商品がWEBサービス利用のため、商品発送情報が必要ありません。
郵便番号、住所、電話番号を必須項目から解除したいと思っています。

こちらのサイトを参考にコードを作成しました。
http://a-zumi.net/eccube3-custom-entry/

しかしながら、実際に新規登録をしてみるとうまく行きません。
index_dev.phpにて確認してみると何れも required が true のままでした。
エラー表示は下記のとおりです。

zip
zip01,zip02 → 入力されていません

address
pref,addr01,addr02 → 入力されていません

tel → 有効な値ではありません
tel01,tel02,tel03


管理画面からの新規登録及び編集においては問題なく実現できました。
お客様情報登録において required が false にならない原因がわかりましたら
教えていただけますでしょうか。

よろしくお願いします。


フォーム部分は onmember.twig の中の下記を非表示にしています。
<dl id="detail_box__company_name">
<dl id="detail_box__address">
<dl id="detail_box__tel">



event.yml
front.entry.index.initialize:
 - [onFormFrontEntryInit, NORMAL]
front.mypage.change.index.initialize:
 - [onFormFrontMypageChangeInit, NORMAL]
admin.customer.edit.index.initialize:
 - [onFormAdminCustomerEditInit, NORMAL]


Event.php
<?php
namespace Plugin\MyCustomEntry;
use Eccube\Event\EventArgs;
class Event
{
    private $app;

    public function __construct($app)
    {
        $this->app = $app;
    }
    /**
     * 新規会員登録ページの必須項目を除外
     * @param EventArgs $event
     */
    public function onFormFrontEntryInit(EventArgs $event)
    {
        $builder = $event->getArgument('builder');
        $builder->add('tel', 'tel', array( 'required' => false ));
        $builder->add('zip', 'zip', array( 'required' => false ));
        $builder->add('address', 'address', array( 'required' => false ));
    }

    /**
     * マイページ/会員情報編集ページの必須項目を除外
     * @param EventArgs $event
     */
    public function onFormFrontMypageChangeInit(EventArgs $event)
    {
        $builder = $event->getArgument('builder');
        $builder->add('tel', 'tel', array( 'required' => false ));
        $builder->add('zip', 'zip', array( 'required' => false ));
        $builder->add('address', 'address', array( 'required' => false ));
    }

    /**
     * 管理ページの会員登録・編集ページの必須項目を除外
     * @param EventArgs $event
     */
    public function onFormAdminCustomerEditInit(EventArgs $event)
    {
        $builder = $event->getArgument('builder');
        $builder->add('tel', 'tel', array( 'required' => false ));
        $builder->add('zip', 'zip', array( 'required' => false ));
        $builder->add('address', 'address', array( 'required' => false ));
    }
}
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,284名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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