答えて
このコードを試してください。これは間違いなくあなたを助けるでしょう。
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$category = $objectManager->get('Magento\Framework\Registry')->registry('current_category');//get current category
echo $category->getId();
echo $category->getName();
?>
Magentoは、アクセスするカテゴリのレジストリを設定します。だから、currenctカテゴリ、方法下記の使用を得るために:その後、
/**
* @param \Magento\Framework\Registry $registry
*/
protected $_registry;
public function __construct(
\Magento\Framework\Registry $registry
) {
$this->_registry = $registry;
}
と使用:
$category = $this->_registry->registry('current_category');//get current category
を今、あなたは、コレクションにアクセスして、そのような
$ category->のgetName()などの詳細を取得することができます異なっ上記選びだし1まで、このコードに関しての依存性注入の原則から、私は同意コード – user2270248
内で直接のObjectManagerを使用していない、それはMagentoの2 – cjohansson
上記は正しいように見えますが、私はレジストリにまっすぐジャンプするのが最良のアプローチではないと思います。 Magentoは、すでにその機能をカプセル化しているレイヤーリゾルバを提供しています。 (カタログプラグインのTopMenuブロックを参照してください)
\ Magento \ Catalog \ Model \ Layer \ Resolverクラスを注入し、それを使って現在のカテゴリを取得することをお勧めします。ここでは、コードは次のようになります。
ここ<?php
namespace FooBar\Demo\Block;
class Demo extends \Magento\Framework\View\Element\Template
{
private $layerResolver;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Catalog\Model\Layer\Resolver $layerResolver,
array $data = []
) {
parent::__construct($context, $data);
$this->layerResolver = $layerResolver;
}
public function getCurrentCategory()
{
return $this->layerResolver->get()->getCurrentCategory();
}
}
は、実際のgetCurrentCategory()メソッドはリゾルバクラスで何をするかです。
ご覧のとおり、レジストリは引き続き使用されますが、失敗した場合のフォールバックを提供します。
で 'ObjectManager'を使用するように悪い習慣だ、これは正しい応答であります+1はホイールを再発明しないためです! OPが求めているのはまさに*正確なものではありませんが、フォールバックの仕組みのためにおそらく他の答えより良い解決策です。私はそれが私のためだと分かっています。 – Eric
- 1. 同じカテゴリのページで、magento-1.9でテンプレートファイルの現在のカテゴリのイメージを取得する方法は?
- 2. WooCommerce現在のカテゴリページから親カテゴリを取得
- 3. PHTMLテンプレートで指定されたカテゴリIDのためのカテゴリ名を取得します - Magento2
- 4. 現在のタイムゾーンで現在のNSDateを取得する方法は?
- 5. 現在のカテゴリのサブカテゴリを取得しようとしています
- 6. ModelFormMixinのpost()メソッドで現在のユーザーを取得するには?
- 7. 現在のセレクションのdrive.urlでhttpヘッダーを取得するには?
- 8. Mapboxでビデオの現在の時間を取得するには?
- 9. C#でページの現在の状態を取得するには?
- 10. Symfony 3のリポジトリで現在のユーザを取得するには?
- 11. Magento - レジストリと現在のカテゴリ
- 12. 現在のトピックを取得
- 13. 現在のバッチファイルディレクトリを取得
- 14. 現在のビューを取得
- 15. 現在のブラウザウィンドウセンターを取得
- 16. 現在のスレッドハンドルを取得
- 17. 現在のホームスクリーンイメージを取得
- 18. Flutterで現在のルートパスを取得するには?
- 19. Arrayプロトタイプマップで現在のインデックスを取得するには?
- 20. CakePHPで現在の言語コードを取得するには?
- 21. 現在のアンドロイドデバイスで時間を取得するには?
- 22. Inno Setupで現在のUnixタイムスタンプを取得するには?
- 23. jmeterでGMTタイムゾーンの現在時刻を取得するには
- 24. Xamarin:コードで現在のテーマ名を取得するには?
- 25. CSSで現在のテキストサイズを取得するには
- 26. C++で現在のシステム時刻を取得するには
- 27. nodegitで現在のブランチ名を取得するには?
- 28. watchOSで現在の拡張デリゲートを取得するには?
- 29. Django - クエリーセットで現在のオブジェクトを取得するには?
- 30. iMacros経由で現在のYouTube IDを取得するには?
ありがとう@Makwana Ketan –
依存性注入の原則を尊重しない –
私のコメントにフラグを付ける理由はありますか? @マクワナ、このような人をいじめるのではなく、あなたの間違いから学び、よい慣行を分かち合うべきでしょう。 –