タグ付けされた質問 「controllers」

コントローラとアクションメソッドに関する質問を示します

1
/ Controllerと/ controllersの違い
私が年齢を問うことを意味してきた質問は、他の何よりも理論的です。 通常のMagentoモジュールファイル構造を使用した拡張機能の開発に完全に精通しています。ただし、Mageの「拡張機能」の一部を見ると、一部には/ Controllerディレクトリが含まれていることに気付きました。これらのコントローラーの目的は何ですか?/ controllers dir内で通常使用されるコントローラーとどのように違いますか? 名前の構造が異なることがわかるので、異なる方法で自動ロードされる名前を収集していますが、/ Controllerクラスはどのような目的で機能しますか? 皆さんありがとう



5
コントローラーからphtmlにデータを送信します
私はこのコントローラーを持っています: ... public function insertAction() { $something = 'testcase'; $this->loadLayout(); $this->_title($this->__("the title")); $this->renderLayout(); } ... $something.phtmlドキュメントでアクセスしたいのですが、どうすればよいですか?(または別の言い方をすれば:$something.phtmlファイルでどのようにアクセスできますか)

3
Magento 2:書き換えコントローラー
Magento 2でコントローラー(実際はアクション)を書き換えるにはどうすればよいですか?このようにここで指示されたように 、私は試しました: 同じシステムがモデルとブロックで機能するため、ファイルで呼び出される独自のモジュールNamespace_Moduleがありdi.xmlます 。 <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> <!-- this one doesn't work for a controller action --> <preference for="Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics" type="Namespace\Module\Controller\Adminhtml\Dashboard\RefreshStatistics" /> <!-- this one works for a model --> <preference for="Magento\Customer\Model\Resource\GroupRepository" type="Namespace\Module\Model\Resource\Customer\GroupRepository" /> <!-- this one works also for a block --> <preference for="Magento\Backend\Block\Dashboard" type="Namespace\Module\Block\Backend\Dashboard" /> </config> …

4
magento 2のphtmlファイルでメディアディレクトリパスを取得する方法は?
メディアディレクトリパスを取得するために以下のメソッドを使用しましたが、エラーを返しました。 $om = \Magento\Core\Model\ObjectManager::getInstance(); $directoryList = $om->get(\Magento\App\Filesystem\DirectoryList::class); $pubMediaDir = $directoryList->getPath(\Magento\App\Filesystem\DirectoryList::MEDIA); 解決策を見つけるのを手伝ってください。

5
Magento 2でProductRepositoryInterfaceを挿入できないのはなぜですか?
製品リポジトリーを挿入したいコントローラーアクションがあります namespace Nosto\Tagging\Controller\Export; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Store\Model\StoreManagerInterface; use Magento\Backend\App\Action; use Magento\Framework\App\Action\Context; class Test extends Action { private $_productRepository; public function __construct( Context $context, StoreManagerInterface $storeManager, ProductRepositoryInterface $productRepository ) { parent::__construct($context); $this->_storeManager = $storeManager; $this->_productRepository = $productRepository; } コンストラクター引数をどの順序で配置しても、Magentoの依存関係注入は、productRepositoryPHPがスローする引数および引数エラーに対して常に無効なクラスを挿入します。storeManagergetdだけで罰金を注入しました。キャッシュをクリアしても解決しませんでした。 スローされる例外は次のとおりです。 Recoverable Error: Argument 3 passed to Nosto\Tagging\Controller\Export\Test::__construct() must implement interface Magento\Catalog\Api\ProductRepositoryInterface, …

4
Magento2-カスタムコントローラーがエラーをスローする
この投稿に示すモジュールを作成しました。しかし、自分のコントローラーは機能しません。私はこのエラーメッセージを持っています: 回復可能なエラー:MP \ MyModule \ Controller \ Index \ CheckUserName :: __ construct()に渡される引数1は、Mento \ Framework \ App \ Action \ Contextのインスタンス、Dで呼び出されるMagento \ Framework \ ObjectManager \ ObjectManagerのインスタンスである必要があります:\ xampp \ htdocs \ magento2 \ vendor \ magento \ framework \ ObjectManager \ Factory \ AbstractFactory.php(97行目、D:\ xampp \ htdocs \ magento2 \ …

1
コントローラーAccountControllerをオーバーライドする方法
メソッドコントローラーをオーバーライドする必要があります Core/Mage/Customer/controllers/AccountController.php 新しいメソッドを追加します。編集するこのコントローラーは間違っているため、オーバーライドする必要があります。 プロジェクト要件によると、コントローラーは次の場所にある必要があります。 local/New/Mage/Customer/controllers/AccountController.php これを行うには、ファイル構成を作成しますがcustomer/account/test、customer/account /ajaxaddresssは応答せず、customer/account/loginオーバーライドされません。この実装を手伝ってください。 app / app / etc / modules / New_Mage_Customer.xml <?xml version="1.0"?> <config> <modules> <New_Mage_Customer> <active>true</active> <codePool>local</codePool> </New_Mage_Customer> </modules> </config> app / code / local / New / Mage / Customer / etc / config.xml <?xml version="1.0"?> <config> <modules> <New_Mage_Customer> <version>0.0.1</version> </New_Mage_Customer> </modules> <frontend> …

1
Magento 2のURLで予約語を使用する
Magento 2で、標準のルーティングを使用して、次の形式のURLに応答するモジュールを作成することは可能ですか? http://magento.example.com/namespace_module/return/index つまり、2番目のパラメーターがPHPの予約済みキーワードであるURL です。上記の問題は、PHPコントローラークラス名を作成することです。 Namespace\Module\Controller\Return\Index そしてReturn名前空間にいることは違法なPHPです。URLの最後のパラメーター(伝統的にアクションと呼ばれていました)が予約済みのキーワードだったかどうか http://magento.example.com/namespace_module/foo/return Magentoでは、次の名前のコントローラークラスを作成できます。 Namespace\Module\Controller\Foo\ReturnAction ただし、これは2番目のパラメーターに対しては機能しません。 標準のMagento 2ルーティング技術を使用してこれを行う方法はありますか? そうでない場合、この動作を実現するためにカスタムルーターオブジェクトを挿入するための一般的に考えられるベストプラクティス、またはこれを回避できる他のいくつかの手法はありますか?(afterプラグインMagento\Framework\App\Router\ActionList?)


1
カスタムモジュールページでSSLを使用するにはどうすればよいですか?
いくつかのページを含むモジュールを作成しましたが、このページで、顧客のログインページのように、URLでSSLを強制的に使用する方法を知りたいと思います。すべてのページで必要なわけではありませんが、必要なページもあります。 (私は試していませんが)頭に浮かぶのは、アクションコントローラーでURLを評価し、https://magento configでSSLが有効になっていて、現在のURLがそれを使用していない場合にリダイレクトすることです。 このアプローチは正しいですか?または、この種の設定は構成ファイルに含まれますか?

1
Magento 2.1.0で単純なajax呼び出しを行う方法
私のphtmlファイルの1つに簡単なボタンを追加しました。 <input type='button' name='emq_zip_btn' class='emq_zip_btn' value='Go'> カスタムモジュール(Ved_Mymodule)から1つのカスタムjsファイル( "emq.js")を追加しました。 require([ "jquery", "jquery/ui" ], function($v){ //<![CDATA[ $v = jQuery.noConflict(); $v(document).ready(function() { console.log('jquery loaded from emq.js'); $v(".emq_zip_btn").on('click',function(e) { console.log('clicked'); }); }); //]]> }); 上記のボタンをクリックすると、「clicked」がコンソールに表示されます。つまり、jQueryは正しく動作しています。 カスタムモジュールVed_Mymoduleのコントローラーファイルを次に示します。 Ved \ Mymodule \ Controller \ Index \ Index.php: <?php namespace Ved\Mymodule\Controller\Index; use Ved\Mymodule\Model\NewsFactory; use Magento\Framework\App\Action\Action; use Magento\Framework\App\Action\Context; …

3
magento2でカスタムモジュールを作成すると致命的なエラーが表示される
magento 2でカスタムモジュールを作成する作業をしていますが、機能しません。どこが間違っているのか教えてもらえますか? 私のモジュールコード: app / etc / config.php: 'modules' => array ( 'Ramesh_Sample' => 1, ), app / code / Ramesh / Sample / etc / module.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Ramesh_Sample" schema_version="2.0.0"> </module> </config> app / code / Ramesh / Sample / etc / frontend / routes.xml …

1
http動詞インターフェースの目的
Magento 2.3では、すべてのhttp動詞用のインターフェースがいくつかあります Magento\Framework\App\Action\HttpPostActionInterface Magento\Framework\App\Action\HttpGetActionInterface、 ... それらはすべて空で実装されていMagento\Framework\App\ActionInterfaceます。 また、それらすべてがapp/etc/di.xmlのパラメーターにマップされてMagento\Framework\App\Request\HttpMethodMapおり、多くのコントローラーがこれらのインターフェースを実装していることもわかりました。 しかし、すべてのコントローラではありません。 それについて私が見つけることができたすべてです。 彼らの目的は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.