## 自定义模板文件 所有详情使用的是同一个模板文件`woo\admin\view\detail.html`。 如果你希望当前详情自定义一个模板文件,可以在应用的下的view试图目录中以当前控制器的“小写+下划线”创建一个目录,在该目录下创建"detail.html";然后把默认的详情模板内容复制过来就完成了自定义详情模板文件的需求。 然后当前详情自定义的一些详情字段项、js等模板可以写在该模板中。 ~~~ {extend name="$extend_detail"/} {block name="script"} <script> </script> {/block} ~~~ 如果你不希望自定义的文件名叫"list.html",你可以: ~~~ public function detail() { $this->local['fetch'] = 'my'; return call_user_func(['parent', __FUNCTION__]); } ~~~ ## 自定义字段详情模板 ![](https://img.kancloud.cn/35/9a/359a6d195e65db85b29259f5085454ca_768x291.png) 字段详细模板,指的是详情页中每个字段怎么显示。大多数情况下都是`show`原样显示,其他情况也会自动根据列表设置的“列表模板”进行显示 ![](https://img.kancloud.cn/76/cb/76cb6b4cbcd3f7cc55950614b1ff097f_539x436.png) 所有大多情况下,详情信息是不用管的,它会自动识别或根据列表设置来做显示,确实匹配不到就原样输出。 但需要注意的是,如果列表设置为“不显示”,详情也会显示(详情不像列表,详情大多情况下是需要展示所有字段数据的),所以确实有敏感字段(比如密码、身份信息等)确实希望不在详情显示,**必须单独给详细设置为“不显示”**。 如果需要单独设置字段的详情模板: 方式一:直接定义模板,必须用div标签包住 ![](https://img.kancloud.cn/54/dd/54dd942a223a5d9eddeaafadba38d782_538x174.png) ``` <div style="color:red;">自定义{{d.title}}{{d.this.detail.a}}{{d.this.detail.b}}</div> ``` 方式二:定义选择器名 ![](https://img.kancloud.cn/72/33/7233c967c6fd507e1629634f75a55865_370x210.png) ~~~ <script type="text/html" id="mytestTemplet"> {{console.log(d)}} {{d.title}}{{d.this.detail.a}} </script> ~~~ 这个模板你可以写在定义的detail模板文件中,你可以写在全局文件“app/commom/view/table/templet/common.html”中。 模板引擎是layui的模板引擎,`d`变量接收当条数据,`d.this`获取字段相关信息,`d.this.detail`获取你自定义参数 ## 详情关联 详情默认只显示当前表数据,如果模型有关联,可以关联出其他表的信息 ~~~ // 比如Admin的详情 public function detail() { $this->local['detail_with'] = ['AdminGroup', 'Department', 'AdminLogin' => [ 'limit' => 5, 'order' => ['id' => 'DESC'] ]]; return call_user_func(['parent', __FUNCTION__]); } ~~~ ## 其他参数 ~~~ public function detail() { // 定义查询的额外条件 // $this->local['where'][] = ['字段','符号','值']; // $this->local['whereOr'][] = ['字段','符号','值']; // 参考TP手册whereOr // 指定显示的列表列表 否则自动识别 // $this->local['field'] = ['id', 'username']; // 自定义顶部标题 // $this->local['header_title'] = '新标题'; // 自定义返回列表的链接 同时也是 修改成功以后 返回的链接 // $this->local['return_list_url'] = (string) url('xxx'); return call_user_func(['parent', __FUNCTION__]); } ~~~