自定义一个页面

跟 thinkphp 是没有什么区别的

#project\app\admin\controller\Category.php

namespace app\admin\controller;

class Category extends \easyadmin\controller\Admin
{
    public function my_page(){
        # 根据需求添加资源文件
        $resource = Resource::getInstance();
        $resource->appendCssFile('/js.js');
        $resource->appendJsFile('/css.css');

        # 根据需求设置面包屑
        $breadcrumb = new Breadcrumb();
        $breadcrumb->add('name', 'http://xxx.xxx.com');
        $breadcrumb->add('name2', 'http://xxx.xxx.com');




        return $this->fetch('category:my_page', [
            'name' => 'zhangSan',
            '__breadcrumb__' => $breadcrumb
        ]);
    }
}

完全自定义页面,空白页面

#project\app\admin\views\category\my_page.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    {$name}

</body>
</html>

使用 layout 页面

{extend name="@layout" /}


{block name="body"}
    后台首页
{/block}

继承列表页面

{extend name="@list:list" /}

{block name="title"}
    # 页面标题
    {$__page_name__}列表
{/block}

{block name="style"}
    # css 样式
{/block}


{block name="header_action"}
    # 添加按钮
    {if isset($addAction)}
        {$addAction}
    {/if}
{/block}

{block name="filter"}
    {if isset($table)}
        {$table->getFilter()}
    {/if}
{/block}


{block name="body"}
    {if isset($table)}
        # table foreach 输出
    {/if}
{/block}

{block name="pagination"}
    # 分页
    {if isset($table)}
        {$table->getPage()}
    {/if}
{/block}


{block name="body_script"}
    # 底部js
{/block}


继承添加页面

{extend name="@form:form" /}


{block name="body"}
   # 您的业务

{/block}

{block name="title"}{$__page_name__}{/block}
{block name="style"}{/block}
{block name="head_script"}{/block}
{block name="body_script"}{/block}
# 更多模块可查看 layout 文件
{__block__}标签默认会查找到 layout.html ; 如果多级继承后, 可直接把上级页面中的需要内容复制进来,然后实现自己的重写

例如继承详情页面

{extend name="@show:show" /}


{block name="body"}
   您的业务
   {__block__}
   # 此处的 {__block__} 会查找到 layout.html 中的 {block name="body"}
   # 如果需要 show 页面中的 body ,可以吧 show 页面中的 body 内容复制到这里

{/block}

{block name="title"}{$__page_name__}{/block}
{block name="style"}{/block}
{block name="head_script"}{/block}
{block name="body_script"}{/block}
# 更多模块可查看 layout 文件
模板文件编辑了不更新
thinkphp 的模板编译好了有缓存; 使用了模板继承 {block}标签, 改了被继承的页面,可能需要删除编译好的模板缓存,runtime目录中;