2016-11-02 1 views
1

Я разработал модуль выборки в Magento 2, который просто печатает Hellow world.there только один контроллер и один файл макетаКак контроллер загружает раскладку в Magento 2

контроллер файл

<?php 
namespace MageClass\First\Controller\Test; 

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

class Helloworld extends \Magento\Framework\App\Action\Action 
{ 

public function execute() 
{ 
    $this->_view->loadLayout(); 
    $this->_view->renderLayout(); 
} 
} 

расположение

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">   
    <referenceBlock name="content"> 
     <block 
      template="helloworld.phtml" 
      class="Akhil\Test\Block\Helloworld" 
      name="helloworld_test_helloworld"> 
     </block> 
    </referenceBlock> 
</page> 

Вот мои сомнения в том, как эта схема и контроллер связан .when я доступ к контроллеру через браузер по умолчанию эта схема загружает. Как это связано с компоновкой и контроллером.

и я хочу добавить еще один макет и контроллер в моем module.so, как связать их как при обращении контроллер загрузит требуемый макет

+0

Что раскладка имя файла вашего здесь? –

+0

имя файла контроллера и путь к папке app/code/MageClass/First/Controller/Test/Helloworld.php –

+0

Я пишу о вашем имени файла макета, который является xml, например hello_world_test.xml. так же, как ваше имя файла? –

ответ

1

В Magento 2 контроллера и файл макета, связанный с их именовании конвенций.

Так вот вы создали свой файл контроллера, который является: приложение/код/​​MageClass/Первый/Controller/Test/Helloworld.php

Ваше имя файла макета:
приложение/код/MageClass/Первая/View/forntend/макет/helloworld_tes t_helloworld.xml

имени файла макета всегда зависит от имени контроллера и его имя действия .

именования файла макета является - modulename_controllername_actionname.xml

Пример 1:

Здесь ваше имя модуля "Helloworld" Имя контроллера "Test »и ваше имя действия« Helloworld ».

поэтому ваше имя файла макет должен быть - helloworld_test_helloworld.xml (modulename_controllername_actionname.xml)

То же самое теперь, если вы хотите создать новый контроллер и новый макет затем снова вам нужно нравится, что использование выше конвенций

Пример: 2

Здесь я создание второго контроллера "Испытание1 "и действие" Helloworld1 ".

поэтому ваш путь к контроллеру должен быть - app/code/MageClass/First/Controller/Test1/Helloworld1.PHP

так что здесь ваше имя файла макет должно быть - helloworld_test1_helloworld1.xml (modulename_controllername_actionname.xml)

Больше ссылок см этой ссылки - http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html

Смежные вопросы