프런트엔드 뷰 작성 방법
전면 뷰
이 테마에서 블록, 레이아웃, 템플릿을 포함한 Magento2 보기를 알 수 있습니다.이전 주제 루트와 컨트롤러를 생성합니다.아시다시피 보기는 출력 페이지의 표시에 사용됩니다.
Magento2에서 보기는 세 가지 경로로 생성됩니다.
- 블록
- 배치
- 템플릿
창설된 모듈의 간단한 보기를 구축하여 창설하는 방법을 찾을 수 있습니다이전 주제
컨트롤러 생성
먼저 레이아웃 파일.xml
을 호출하는 컨트롤러를 만듭니다.
Karabiner/HelloMagento2/Controller/SomethingElse/Index.php<?php
namespace Karabiner\HelloMagento2\Controller\SomethingElse;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
class Index extends Action
{
/**
* @var PageFactory
*/
private $pageFactory;
public function __construct(Context $context, PageFactory $pageFactory)
{
parent::__construct($context);
$this->pageFactory = $pageFactory;
}
/**
* call Karabiner/HelloMagento2/view/frontend/layout/hellomagento2_somethingelse_index layout
*/
public function execute()
{
return $this->pageFactory->create();
}
}
레이아웃 파일 만들기(.xml)
레이아웃은 Magento2 모듈의 뷰레이어의 주요 경로입니다.레이아웃 파일은 XML 파일로 {MAGENTO_DIRECTORY}/view/{area}/layout/
폴더에 있습니다.
영역 경로는 frontend
또는 adminhtml
(admin 대시보드) 레이아웃을 정의하는 위치입니다.
레이아웃 파일 형식은 {ルーターID} _ {コントローラー名} _ {アクション名}.xml
형식입니다.
렌더링 페이지의 경우 Magento는 레이아웃 파일을 검사하여 페이지의 핸들을 찾고 블록과 템플릿을 로드합니다.이 모듈의 레이아웃 핸들 파일을 만듭니다.
파일: app/code/Karabiner/HelloMagento2/view/frontend/layout/hellomagento2_somethingelse_index.xml
app/code/Karabiner/HelloMagento2/view/frontend/layout/hellomagento2_somethingelse_index.xml<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Karabiner\HelloMagento2\Block\SomethingElse" name="hello_magento2_display"
template="Karabiner_HelloMagento2::hello_world.phtml" />
</referenceContainer>
</body>
</page>
블록 파일 만들기
↑ 파일은 이 페이지의 블록과 템플릿을 정의합니다.
class(블록 클래스): HelloMagento2\HelloMagento2\Block\SomethingElse
블록 클래스는 템플릿 파일에 데이터를 제공하는 클래스입니다.
템플릿 파일:Karabiner_HelloMagento2::hello_world.phtml
파일 이름은 두 부분입니다.
1. Karabiner_HelloMagento2
: 참조 Karabiner/HelloMagento2/view/frontend/templates
2. hello_world.phtml
: 위 폴더의 위치는 SomethingElse/ hello_world.phtml
입니다.
이름: 블록을 참조로 식별하는 데 필요한 속성입니다.
템플릿 파일 만들기
hello_world.phtml라는 템플릿 파일 만들기app/code/Karabiner/HelloMagento2/view/frontend/templates/hello_world.phtml
다음 코드 추가
app/code/Karabiner/HelloMagento2/view/frontend/templates/hello_world.phtml<?php
/**
* @var \Karabiner\HelloMagento2\Block\SomethingElse $block
*/
?>
<?= $block->sayHi() ?>
레이아웃 파일에서 템플릿은 Karabiner_HelloMagento2::hello_world.phtml
정의됩니다.이것은 Magento가 모듈Karabiner_HelloMagento2
의 템플릿 폴더에서 파일 이름hello_world.phtml
을 찾을 수 있음을 의미합니다.모듈의 템플릿 폴더는 app/code/{vendor_name}/{module_name}/view/frontend/templates/
입니다.
템플릿 파일에서 블록 객체는 변수 "$block"을 사용할 수 있습니다.보시다시피 Block에서 메서드sayHi()
를 호출합니다.완료됨
레이아웃이나 phtml를 변경한 후cache:clean 명령줄을 실행해야 합니다
MAGENTO_DIRECTORYbin/magento cache:clean
이 페이지를 다시 방문하십시오.
( http://[MAGENTO_URL]/custom_router_name/somethingelse
) and see the result.
Reference
이 문제에 관하여(프런트엔드 뷰 작성 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/moaazfarag/items/68d0660e5ee819401a59
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
namespace Karabiner\HelloMagento2\Controller\SomethingElse;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
class Index extends Action
{
/**
* @var PageFactory
*/
private $pageFactory;
public function __construct(Context $context, PageFactory $pageFactory)
{
parent::__construct($context);
$this->pageFactory = $pageFactory;
}
/**
* call Karabiner/HelloMagento2/view/frontend/layout/hellomagento2_somethingelse_index layout
*/
public function execute()
{
return $this->pageFactory->create();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Karabiner\HelloMagento2\Block\SomethingElse" name="hello_magento2_display"
template="Karabiner_HelloMagento2::hello_world.phtml" />
</referenceContainer>
</body>
</page>
<?php
/**
* @var \Karabiner\HelloMagento2\Block\SomethingElse $block
*/
?>
<?= $block->sayHi() ?>
bin/magento cache:clean
Reference
이 문제에 관하여(프런트엔드 뷰 작성 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/moaazfarag/items/68d0660e5ee819401a59텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)