バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yoshiaki
投稿日時: 2016/6/23 13:33
対応状況: 解決済
半人前
登録日: 2016/6/22
居住地:
投稿: 11
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
あ、すみません。

なんとか大丈夫そうでした。
ご迷惑おかけしました。


ありがとうございました。
yoshiaki
投稿日時: 2016/6/23 13:30
対応状況: −−−
半人前
登録日: 2016/6/22
居住地:
投稿: 11
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
別のに詰めて、作ったやつにマージして
って感じでやればよかったんですね

これ、受注検索のとこでも使うことって可能なのでしょうか?

SearchOrderType.phpでは
$appがまず定義されてないようなので、
定義しないといけないのかと思いますが
nyorai
投稿日時: 2016/6/23 12:13
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
$array = array();
for ($i = 0; $i < count($categories); $i++) {
$path = $categories[$i]->getPath();
$array = array_merge($array, $path);
}

これでどうでしょう。
yoshiaki
投稿日時: 2016/6/23 11:50
対応状況: −−−
半人前
登録日: 2016/6/22
居住地:
投稿: 11
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
$array_id = array();
for ($i = 0; $i < count($categories); $i++) {
$category[$i] = array_merge($categories[$i]->getPath());
$ca = array_merge($array_id,$category[$i]); //カテゴリID
}

これで、大丈夫なのかなーと思っていましたが
まだうまく表示されません。

foreachのが望ましいようですが、foreachがまだいまいち理解できていないためとりあえずforでも大丈夫そう?なのでforで組もうと考えています。
nyorai
投稿日時: 2016/6/22 18:18
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
forではなくforeachのほうが望ましいです(間違いではないです)

array_mergeの使い方が間違っているので、PHPマニュアル参考にしてみてください。
http://php.net/manual/ja/function.array-merge.php
yoshiaki
投稿日時: 2016/6/22 18:06
対応状況: −−−
半人前
登録日: 2016/6/22
居住地:
投稿: 11
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
for ($i=0;$i<count($category);$i++) {
$cate = $category[$i]->getPath();
  $ca = array_merge($cate);
}

このようにするところまでは理解ができました。
しかし、上書きされてしまうようですね
複数の親カテゴリ(配列に複数の結果)がある場合
後の方しか取得できません。

また、
$ca = array_merge($category[0]->getPath(), $category[1]->getPath());

このようになった際に、うまく表示されていました。

追記
for ($i=0;$i<count($category);$i++) {
  $cate = $category[$i]->getPath();
  $ca[] = array_merge($cate);
}

このようにしたら、入ったのですが
配列の番号でしょうか


┗Aカテゴリ
 ┗店舗A

┗Bカテゴリ
 ┗店舗A

のようになってしまいましたね…
nyorai
投稿日時: 2016/6/22 17:37
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
> Error: Call to a member function getPath() on array
> この場合は、配列のまま使用してしまっていることが原因なのでしょうか?

はい、そうですね。

とりあえず$categoryや、$category[0]->getPath()の結果をdumpしてみたりすればイメージつきやすいと思います。






yoshiaki
投稿日時: 2016/6/22 17:06
対応状況: −−−
半人前
登録日: 2016/6/22
居住地:
投稿: 11
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
red様、nyorai様
ありがとうございます。


getPathなのですが、
先ほどのですと、$categoryにカテゴリのエンティティを取得したため
$ca = $category->getPath();

でよいのかなーと思ったのですが
Error: Call to a member function getPath() on array
この場合は、配列のまま使用してしまっていることが原因なのでしょうか?
nyorai
投稿日時: 2016/6/22 16:37
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
> 同じクラス内、$builderよりも前で定義を行い、
> $builder内カテゴリの部分で
> choiceを行う認識であっているでしょうか?

はい、それで大丈夫です。

> $category = $em->getRepository(\Eccube\Entity\Category)->findBy('name'=>$name);←52行目

findByの引数は配列で渡す必要があるので、findBy(array('name'=>$name))

が正しいですね。
red
投稿日時: 2016/6/22 16:31
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1570
Re: 商品検索画面、商品登録画面、受注検索画面においてカテゴリを絞って表示させたい
Parse Error: syntax error, unexpected '=>' (T_DOUBLE_ARROW)
と書いてありますよ?

配列じゃないのに=>を使っているのが原因です。


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,354名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.