证书表字段:
证书名称:title 证书编号:zsbh 其他字段若干(开发者可自行创建)
实现需求:
1、在前端输入【证书名称+编号】查询出证书详情记录 2、在前端输入【证书编号】查询出详情记录
实现步骤:
1、创建证书表单,取名为zhengshu(随便命名)
2、在右侧进入自定义字段,创建几个字段
我只创建了两个字段,开发者可以随便创建若干个字段用于测试。
3、刷新后台界面
4、进入表单管理处,录入一些测试数据
-----------这个时候是关键部分,需要开发了----------
5、找到表单前端控制器文件/dayrui/App/Form/Controllers/Zhengshu.php
<?php namespace Phpcmf\Controllers; /** * 二次开发时可以修改本文件,不影响升级覆盖 */ class Zhengshu extends \Phpcmf\Home\Form { public function index() { $this->_Home_List(); } public function show() { $this->_Home_Show(); } public function post() { $this->_Home_Post(); } public function search() { // 接收url传递的值 $title = dr_safe_replace(\Phpcmf\Service::L('input')->get('title')); $zsbh = dr_safe_replace(\Phpcmf\Service::L('input')->get('zsbh')); if (!$title) { $this->_msg(0, '证书名称不能为空'); } if (!$zsbh) { $this->_msg(0, '证书编号不能为空'); } // 查询 $row = \Phpcmf\Service::M()->table($this->init['table'])->where('title', $title)->where('zsbh', $zsbh)->getRow(); if (!$row) { $this->_msg(0, '没有查询到'); } // 查询到了调转到表单详情页面 $url = SITE_URL.'index.php?s=form&c='.$this->form['table'].'&m=show&id='.$row['id']; dr_redirect($url); } }
6、然后在任意页面组建一个表单搜索窗口,比如我随便在首页写一个
xunruicms/template/pc/default/home/index.html
<form class="search-form" action="/index.php" method="get"> <input type="hidden" name="s" value="form"> <input type="hidden" name="c" value="zhengshu"> <input type="hidden" name="m" value="search"> 证书名称:<input type="text" name="title" > 证书编号:<input type="text" name="zsbh" > <button class="btn default" type="submit"> 查询 </button> </form>
然后访问这个模板的url,看到效果
代码比较简单,需要开发者后期自己美化form体内。
7、尝试搜索名称+编号,看看结果
8、搜索结果会调转到表单详情界面上,如下
具体开发者可以在【开发者模式下】看到本页面的具体模板路径,改改显示方式,把后台的自定义字段都调用出来!
完成搜索流程。
----------如果要实现只搜索【证书】,只需要把(5)中代码稍微改一下----
/dayrui/App/Form/Controllers/Zhengshu.php
<?php namespace Phpcmf\Controllers; /** * 二次开发时可以修改本文件,不影响升级覆盖 */ class Zhengshu extends \Phpcmf\Home\Form { public function index() { $this->_Home_List(); } public function show() { $this->_Home_Show(); } public function post() { $this->_Home_Post(); } public function search() { // 接收url传递的值 $zsbh = dr_safe_replace(\Phpcmf\Service::L('input')->get('zsbh')); if (!$title) { $this->_msg(0, '证书名称不能为空'); } // 查询 $row = \Phpcmf\Service::M()->table($this->init['table'])->where('zsbh', $zsbh)->getRow(); if (!$row) { $this->_msg(0, '没有查询到'); } // 查询到了调转到表单详情页面 $url = SITE_URL.'index.php?s=form&c='.$this->form['table'].'&m=show&id='.$row['id']; dr_redirect($url); } }
搜索表单的from里面也可以把多余的搜索框去掉!
完成搜索方案。