Php 他写了一本小小说。稍后我可能会有时间讨论与模型/模板相关的主题,但目前我没有时间。不过,我将简要地谈谈您的SQL问题

Php 他写了一本小小说。稍后我可能会有时间讨论与模型/模板相关的主题,但目前我没有时间。不过,我将简要地谈谈您的SQL问题,php,magento,controller,magento-1.9,Php,Magento,Controller,Magento 1.9,Magento使用数据库体系结构。尽可能使用系统提供的模型对象来获取所需的信息。我知道这些都在SQL表中,但最好不要考虑使用原始SQL查询获取数据,否则你会发疯的 最后免责声明。我已经使用Magento大约两三周了,所以请注意emptor。这是一个让我头脑清醒的练习,也是一个帮助StackOverflow的练习 创建一个模块 对Magento的所有添加和自定义都是通过模块完成的。因此,您需要做的第一件事是创建一个新模块。在app/modules中创建一个XML文件,命名如下 cd/path/to

Magento使用数据库体系结构。尽可能使用系统提供的模型对象来获取所需的信息。我知道这些都在SQL表中,但最好不要考虑使用原始SQL查询获取数据,否则你会发疯的

最后免责声明。我已经使用Magento大约两三周了,所以请注意emptor。这是一个让我头脑清醒的练习,也是一个帮助StackOverflow的练习

创建一个模块 对Magento的所有添加和自定义都是通过模块完成的。因此,您需要做的第一件事是创建一个新模块。在
app/modules
中创建一个XML文件,命名如下

cd/path/to/store/app
触摸etc/modules/MyCompanyName_HelloWorld.xml

真的
地方的
MyCompanyName是供您修改的唯一名称空间,它不必是您公司的名称,但推荐的约定是my magento
HelloWorld
是模块的名称

清除应用程序缓存 现在模块文件已经就位,我们需要让Magento知道它(并检查我们的工作)。在管理应用程序中

  • 转到系统->缓存管理
  • 从“所有缓存”菜单中选择“刷新”
  • 单击保存缓存设置
  • 现在,我们要确保Magento知道这个模块

  • 转到系统->配置
  • 单击高级
  • 在“禁用模块输出”设置框中,查找名为“MyCompanyName\u HelloWorld”的新模块
  • 如果您可以忍受性能下降,您可能希望在开发/学习时关闭应用程序缓存。没有什么比忘记清除缓存和奇怪为什么没有显示更改更令人沮丧的了

    设置目录结构 接下来,我们需要为模块设置一个目录结构。您不需要所有这些目录,但现在将它们全部设置起来没有什么害处

    mkdir-p app/code/local/MyCompanyName/HelloWorld/Block
    mkdir-p app/code/local/MyCompanyName/HelloWorld/controllers
    mkdir-p app/code/local/MyCompanyName/HelloWorld/Model
    mkdir-p app/code/local/MyCompanyName/HelloWorld/Helper
    mkdir-p app/code/local/MyCompanyName/HelloWorld/etc
    mkdir-p app/code/local/MyCompanyName/HelloWorld/sql
    
    并添加一个配置文件

    touch app/code/local/MyCompanyName/HelloWorld/etc/config.xml
    
    在配置文件中,添加以下内容,这基本上是一个“空白”配置

    
    0.1.0
    
    过于简单化了,这个配置文件将让您告诉Magento您想要运行的代码

    设置路由器 接下来,我们需要设置模块的路由器。这将让系统知道我们正在以

    http://example.com/magento/index.php/helloworld
    
    因此,在配置文件中,添加以下部分

    
    标准
    MyCompanyName\u HelloWorld
    地狱世界
    
    你在这里说的是“任何域名为helloworld的URL

    http://example.com/magento/index.php/helloworld
    
    应使用frontName控制器MyCompanyName_HelloWorld”

    因此,有了上述配置,当您加载上面的helloworld页面时,您将得到一个404页面。这是因为我们还没有为控制器创建文件。我们现在就开始吧

    touch app/code/local/MyCompanyName/HelloWorld/controllers/IndexController.php
    
    现在尝试加载页面。进步!您将得到一个PHP/Magento异常,而不是404

    已加载控制器文件,但类不存在 因此,打开我们刚刚创建的文件,并粘贴以下代码。类的名称需要基于您在路由器中提供的名称


    我宁愿推荐,这将帮助您生成样板文件,您可以只关注核心业务逻辑。它只是有助于加快事情的发展

    Magento模块是一组目录,其中包含创建特定存储功能所需的块、控制器、帮助程序和模型。它是Magento平台中的定制单元。可以创建Magento模块来执行多种功能,并支持逻辑来影响用户体验和店面外观。它有一个生命周期,允许安装、删除或禁用它们。从商家和扩展开发者的角度来看,模块是Magento平台的核心单元

    模块声明

    我们必须使用配置文件来声明模块。如Magento 2所示,在模块的etc目录中搜索配置模块。现在我们将创建配置文件module.xml

    代码如下所示:

    <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Cloudways_Mymodule" setup_version="1.0.0"></module> </config>
    
    ?php
    \Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Cloudways_Mymodule',
    __DIR__
    );
    
    代码如下所示:

    <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Cloudways_Mymodule" setup_version="1.0.0"></module> </config>
    
    ?php
    \Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Cloudways_Mymodule',
    __DIR__
    );
    
    检查模块状态 在完成上述步骤之后,我们将创建一个简单的模块。现在,我们将使用以下命令行检查模块的状态以及它是启用还是禁用的:

    php bin/magento module:status
    
    php bin/magento module:enable Cloudways_Mymodule
    

    完成整个过程后,请分享您的反馈

    我试图从magaplaza hello world教程制作模块,但出现了一些问题。我从github导入了这个模块的代码,它工作了。 从这个模块中,我创建了一个类别子类别ajax选择下拉列表模块。在magento2安装的aap/code目录中安装后,请遵循以下URL。。 您可以从此处下载其代码并将其放置在aap/code文件夹中。 然后运行这些命令

    php bin/magento setup:update
    php bin/magento setup:static-content:deploy -f
    php bin/magento c:c