2016-12-06 49 views
1

保存数据I在路径中创建模块的应用程序/代码/ Smartshore /认购Magento的2创建在前端的形式和实体

我想创建显示形式的途径和其保存的数据。我的代码,但我不知道什么是缺少:请参阅下面的代码:

Smartshore /认购的/ etc /前端/ routes.xml

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> 
    <router id="standard"> 
     <route id="subscription" frontName="subscription"> 
      <module name="Smartshore_Subscription" /> 
     </route> 
    </router> 
</config> 

Smartshore /认购/控制器/索引/ index.php文件

<?php 

namespace Smartshore\Subscription\Controller\Index; 

use \Magento\Framework\App\Action\Action; 

class Index extends Action 
{ 
    /** @var \Magento\Framework\View\Result\Page */ 
    protected $resultPageFactory; 

    /** 
    * @param \Magento\Framework\App\Action\Context $context 
    */ 
    public function __construct(\Magento\Framework\App\Action\Context $context, 
           \Magento\Framework\View\Result\PageFactory $resultPageFactory) 
    { 
     $this->resultPageFactory = $resultPageFactory; 
     parent::__construct($context); 
    } 

    /** 
    * Subscription Index, shows a list of subscriptions 
    * 
    * @return \Magento\Framework\View\Result\PageFactory 
    */ 
    public function execute() 
    { 
     return $this->resultPageFactory->create(); 
    } 
} 

Smartshore /认购/控制器/索引/ Add.php

<?php 

namespace Smartshore\Subscription\Controller; 


use Magento\Framework\App\Action\Action; 
use Magento\Framework\App\Action\Context; 
use Magento\Framework\View\Result\PageFactory; 

class Add extends Action 
{ 
    protected $resultPageFactory; 

    public function __construct(Context $context, PageFactory $pageFactory) 
    { 
     $this->resultPageFactory = $pageFactory; 
     parent::__construct($context); 
    } 

    public function execute() 
    { 
     $resultPage = $this->resultPageFactory->create(); 

     return $resultPage; 
    } 
} 

的Sma rtshore /订阅/控制器/索引/ Result.php

<?php 

namespace Smartshore\Subscription\Controller; 


use Magento\Framework\App\Action\Action; 
use Magento\Framework\App\Action\Context; 
use Magento\Framework\View\Element\Messages; 
use Magento\Framework\View\Result\PageFactory; 

class Result extends Action 
{ 
    /** @var PageFactory $resultPageFactory */ 
    protected $resultPageFactory; 

    /** 
    * Result constructor. 
    * @param Context $context 
    * @param PageFactory $pageFactory 
    */ 
    public function __construct(Context $context, PageFactory $pageFactory) 
    { 
     $this->resultPageFactory = $pageFactory; 
     parent::__construct($context); 
    } 

    /** 
    * The controller action 
    * 
    * @return \Magento\Framework\View\Result\Page 
    */ 
    public function execute() 
    { 
     $number = $this->getRequest()->getParam('number'); 

     $resultPage = $this->resultPageFactory->create(); 

     /** @var Messages $messageBlock */ 
     $messageBlock = $resultPage->getLayout()->createBlock(
      'Magento\Framework\View\Element\Messages', 
      'answer' 
     ); 
     if (is_numeric($number)) { 
      $messageBlock->addSuccess($number . ' times 2 is ' . ($number * 2)); 
     }else{ 
      $messageBlock->addError('You didn\'t enter a number!'); 
     } 

     $resultPage->getLayout()->setChild(
      'content', 
      $messageBlock->getNameInLayout(), 
      'answer_alias' 
     ); 

     return $resultPage; 
    } 
} 

Smartshore /订阅/视图/前端/布局/ subscription_index_add.xml

<?xml version="1.0"?> 
<page layout="2columns-left" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> 
    <head> 
     <title>New Subscription</title> 
    </head> 
    <body> 
     <referenceBlock name="navigation.sections" remove="true" /> 
     <referenceContainer name="content"> 
      <block class="Magento\Framework\View\Element\Template" name="subscriptionform.add" template="Smartshore_Subscription::form.phtml"/> 
     </referenceContainer> 
    </body> 
</page> 

Smartshore /订阅/视图/前端/布局/ subscription_index_result。 xml

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" 
     xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> 
    <head> 
     <title>Result</title> 
    </head> 
</page> 

我做了上述事情是否正确?

我还有其他文件。但我在这里显示了对我的表格及其提交的尊重。

当我输入/订阅/索引/加

我得到找不到路线。

什么问题?

+0

尝试订阅/添加并检查它是否打开?还要检查你通过订阅时会发生什么? –

+0

当我通过/订阅,我的Controller/Index/Index.php运行并显示订阅列表。当我打/订阅/添加404页面来 – anujeet

回答

1

检查添加和结果文件/类中的命名空间。它应该是namespace Smartshore\Subscription\Controller\Index